如何将纹理应用于自定义几何体
How to apply textures to a custom geometry
我是一个非常新手,试图理解纹理和几何图形。下面的代码应该渲染三角形并将图像应用为纹理。然而,我得到以下错误:
.WebGLRenderingContext: GL ERROR :GL_INVALID_OPERATION : glDrawElements: attempt to access out of range vertices in attribute 0
有什么想法吗?
var scene = new THREE.Scene(),
geometry = new THREE.Geometry();
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, .1, 1000);
renderer = new THREE.WebGLRenderer();
geometry.vertices.push(new THREE.Vector3(-1, -1, 0));
geometry.vertices.push(new THREE.Vector3(-1, 1, 0));
geometry.vertices.push(new THREE.Vector3(1, -1, 0));
geometry.faces.push( new THREE.Face3(0, 2, 1));
geometry.faceVertexUvs[ 0 ].push(
THREE.Vector2( 0, 1),
THREE.Vector2( 1, 1),
THREE.Vector2( 1, 0)
);
geometry.computeCentroids();
geometry.computeFaceNormals();
geometry.computeVertexNormals();
var material = new THREE.MeshBasicMaterial({
//color: 0xFF0000,
//wireframe: true,
map : THREE.ImageUtils.loadTexture('cheese2.231104333_std.jpg')
});
var shape = new THREE.Mesh(geometry, material);
shape.doubleSided = true;
shape.overdraw = true;
scene.add(shape);
camera.position.z = 10;
renderer.setClearColorHex(0x00000, 1);
renderer.setSize( window.innerWidth, window.innerHeight);
renderer.render(scene, camera);
document.body.appendChild(renderer.domElement);
-
您需要在以下代码中推送一个
array
。确保UV正确映射到顶点。geometry.faceVertexUvs[ 0 ].push( [ new THREE.Vector2( 1, 0 ), new THREE.Vector2( 1, 1 ), new THREE.Vector2( 0, 1 ) ] );
-
CCD_ 3已被CCD_。请务必学习官方的three.js示例,并避免网络上的旧示例。
-
纹理加载是异步的,并且只渲染一次,可能是在纹理加载之前。添加动画循环。
three.js r.60
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- jQuery自定义验证比较多个输入的序列
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 在wordpress一定时间后更改自定义字段
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- 自定义函数中的光标位置
- 用于检查数组中是否存在元素的javascript自定义方法
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- Meteor-添加用户自定义字段的方法不起作用
- 自定义表单验证和提交
- jQuery工具验证器自定义效果-添加&消除影响
- 可以't计算自定义谷歌地图的js
- 谷歌水印未显示在自定义搜索框中
- 第三.js自定义几何体光线投射器捕获了错误的对象
- 在 Three.js 中渲染自定义几何体
- 如何将纹理应用于自定义几何体
- Threejs使用顶点自定义三维几何体
- 使用ShaderMaterial为自定义几何体加载纹理在Three.js中不起作用
- 在Three.js中计算自定义几何体的光线