八个顶点立方体的法向矢量

问题描述 投票:2回答:2

我当时正在玩WEBGL,今天,我的多维数据集的顶点法线遇到了问题。

我用立方体网格from internet检查了我的代码,它很好用。

事实是,来自互联网的多维数据集有24个顶点(每个面4个* 6个面),这对我认为是多维数据集的方式来说是很大的。

FIDDLE MY CUBE | FIDDLE INTERNET CUBE(我的代码在第200行加注星标)

我发现一个立方体最多需要8个顶点和12个索引。但是当我渲染我的立方体时,我在屏幕上得到一个奇怪的形状,就像这样(因为法线?):“在此处输入图像说明”“ >>

这是立方体形式的互联网,其旋转位置几乎与我的立方体相同:“在此处输入图像描述”

这是我的立方体:

var cube = {
    "vertices" : [
        -0.5 , 0.5 , 0.5, // 0
         0.5 , 0.5 , 0.5, // 1
        -0.5 ,-0.5 , 0.5, // 2
         0.5 ,-0.5 , 0.5, // 3

        -0.5 , 0.5 , -0.5, // 4
         0.5 , 0.5 , -0.5, // 5
        -0.5 ,-0.5 , -0.5, // 6
         0.5 ,-0.5 , -0.5 // 7
    ],
    "normals" : [
        0.57    , 0.57      , -0.57 ,
        0.57    , -0.57     , -0.57 ,
        -0.57   , -0.57     , -0.57 ,
        -0.57   , 0.57      , -0.57 ,
        0.57    , 0.57      , 0.57 ,
        0.57    , -0.57     , 0.57 ,
        -0.57   , -0.57     , 0.57 ,
        -0.57   , 0.57      , 0.57 
    ],
    "indices" : [
        0 , 2 , 3 ,
        0 , 3 , 1 ,

        0 , 4 , 5 ,
        0 , 5 , 1 ,

        0 , 4 , 6 ,
        0 , 6 , 2 ,

        2 , 6 , 7 ,
        2 , 7 , 3 ,

        1 , 5 , 7 ,
        1 , 7 , 3 ,

        4 , 6 , 7 ,
        4 , 7 , 5 
    ]
}

我的问题是:

是否可以为8个顶点立方体创建正确的法线?如果没有,有什么替代方法?

我当时在玩WEBGL,今天,我的多维数据集的顶点法线遇到了问题。我用互联网上的一个立方体网格检查了我的代码,效果很好。问题是那个立方体...

javascript 3d webgl cube normals
2个回答
4
投票

您需要了解,vertex不仅是空间中的一个点,而且是连接到一个对象中的一组不同的属性。这些属性包括位置,但也可以具有法线,颜色,纹理坐标等。


0
投票

您可以使用通过几何着色器来解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.