【发布时间】:2018-09-15 15:02:54
【问题描述】:
为了更多地了解three.js 中的自定义几何,我尝试调整Paul Bourke's capsule geometry example。
使用我的自定义胶囊几何形状,我目前遇到两个问题:
- 中间面法线方向不正确。
- 侧面有硬接缝。 (编辑:通过故意计算面部法线来修复。更新了要点中的代码)
也许还有一个一直萦绕在我脑海中的额外问题:
- 在中间段添加顶点循环的一般策略是什么?
总的来说,我对几何形状非常满意,但是谁能给我一些关于如何解决这些问题的指导?我觉得中间段的正常问题一定是人脸的方向,这里是相关的人脸构造sn-p:
for(let i = 0; i <= N/2; i++){
for(let j = 0; j < N; j++){
let vec = new THREE.Vector4(
i * ( N + 1 ) + j ,
i * ( N + 1 ) + ( j + 1 ) ,
( i + 1 ) * ( N + 1 ) + ( j + 1 ) ,
( i + 1 ) * ( N + 1 ) + j
);
let face_1 = new THREE.Face3(vec.x,vec.y,vec.z);
let face_2 = new THREE.Face3(vec.x,vec.z,vec.w);
geometry.faces.push(face_1);
geometry.faces.push(face_2);
}
}
【问题讨论】:
-
如果您显式计算法线,它们是否正确?另外,什么是“顶点循环”,将它们添加到中间部分是什么意思?
-
@meowgoesthedog 我只是设法通过显式计算法线来移除接缝,从而在中间部分留下了向后法线的问题。通过“顶点循环”,我的意思是沿着两个帽之间的连接添加额外的段。
标签: javascript three.js geometry normals