【发布时间】:2012-01-09 01:48:12
【问题描述】:
我已经照顾了很长时间了。 我只是在任何地方都找不到任何解决方案。 我正在尝试在圆柱体上应用 3 种不同的纹理(2 顶盖和侧面) 但我完全不知道如何实现这一目标。 你能给我定位吗? 这是我现在正在做的事情:
var coin1_geo = new THREE.CylinderGeometry( 100, 100, 10, 100, 100, false );
var coin1_texture = THREE.ImageUtils.loadTexture("./assets/avers.png");
var coin1_mat = new THREE.MeshLambertMaterial({map:coin1_texture});
var coin1 = new THREE.Mesh( coin1_geo, coin1_mat );
coin1.rotation.x = 20;
coin1.position.set(0,0,0);
coin1.castShadow = true;
coin1.receiveShadow = false;
scene.add( coin1 );
正如您在此处看到的,我只在所有面上应用一种纹理。 但即使在大写字母上,它也没有真正显示出来,我只有一个完整的圆圈。 请帮忙,我正在实现硬币,如果你没有弄清楚。 即使你只是给我一个教程的链接,我也会非常感激。 我什么也找不到,而且我在 3D/OpenGL 编程方面的知识非常有限。 非常感谢。
【问题讨论】:
-
我认为你需要的不仅仅是一个硬币的圆柱体,你应该在顶部和底部添加两个“环”(内半径 = 0)。
-
为什么? three.js 的最后一个版本为 Cylinders 提供了一个布尔值 (openEnded),可以用大写或不用大写来关闭末端。 THREE.CylinderGeometry 的最后一个参数。或者我不明白为什么我应该添加“戒指”......那为什么呢? ;)
标签: javascript html webgl three.js