在 Three.js 中渲染自定义几何体
Rendering custom geometry in Three.js
我正在尝试使用三个.js在空间中的四个顶点之间绘制一个四边形。我已经编写了以下代码,但它不起作用:
var a = { x:10,
y:10}
var b = {x:50,
y:50}
var geometry = new THREE.Geometry();
geometry.vertices.push( new THREE.Vector3( a.x, a.y, 2 ) );
geometry.vertices.push( new THREE.Vector3( b.x, b.y, 2 ) );
geometry.vertices.push( new THREE.Vector3( b.x, b.y - 60, 2 ) );
geometry.vertices.push( new THREE.Vector3( a.x, a.y, 2 ) );
geometry.faces.push( new THREE.Face3(0,1,2) );
geometry.computeFaceNormals();
var material = new THREE.MeshBasicMaterial({ color: "0xff1100"});
var mesh = new THREE.Mesh( geometry, material );
scene.add(mesh);
我哪里犯了错误?顺便问一下,要渲染四边形,我可以使用 Face4 还是必须使用 Face3?有没有在一个地方学习webgl功能的好资源?第三.js文档组织得很好,很完整。
不再
支持四边形。您需要使用两个Face3
,如下所示:
var a = { x:10,
y:10 }
var b = { x:50,
y:50 }
var geometry = new THREE.Geometry();
geometry.vertices.push( new THREE.Vector3( a.x, a.y, 2 ) );
geometry.vertices.push( new THREE.Vector3( b.x, a.y, 2 ) );
geometry.vertices.push( new THREE.Vector3( b.x, b.y, 2 ) );
geometry.vertices.push( new THREE.Vector3( a.x, b.y, 2 ) );
geometry.faces.push( new THREE.Face3( 0, 1, 2 ) ); // counter-clockwise winding order
geometry.faces.push( new THREE.Face3( 0, 2, 3 ) );
geometry.computeFaceNormals();
geometry.computeVertexNormals();
提示:设置material.side = THREE.DoubleSide
,以便几何体的两侧都渲染。当您确定几何图形正确时,可以将其重新设置为 THREE.FrontSide
。
有关学习三.js和WebGL的建议,请参阅学习WebGL和三.js
三.js R.70
相关文章:
- 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中计算自定义几何体的光线