【发布时间】:2014-08-25 08:48:28
【问题描述】:
我在玩 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 个顶点的立方体创建正确的法线吗? 如果没有,有什么替代方案?
【问题讨论】:
标签: javascript 3d webgl cube normals