Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript threejs波纹板定制形状_Javascript_Three.js_Geometry - Fatal编程技术网

Javascript threejs波纹板定制形状

Javascript threejs波纹板定制形状,javascript,three.js,geometry,Javascript,Three.js,Geometry,我正在用波纹板建造一个类似房子的结构,如下所示。在这里,我使用BoxGeometry绘制结构,并更新顶点以制作波纹板墙 var scene=new THREE.scene(); var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000); 摄像机位置设置(0,2,5); var renderer=new THREE.WebGLRenderer({ 反别名:对 }); renderer.setSize(window.innerWi

我正在用波纹板建造一个类似房子的结构,如下所示。在这里,我使用BoxGeometry绘制结构,并更新顶点以制作波纹板墙

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);
摄像机位置设置(0,2,5);
var renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
var directionalLight1=新的三个方向光(0xffffff,0.2);
directionalLight1.castShadow=true;
方向灯1.位置设置(1,1,1);
场景。添加(方向光1);
var directionalLight1=新的三个方向光(0xffffff,0.2);
directionalLight1.castShadow=true;
方向灯1.位置设置(1,1,-1);
场景。添加(方向光1);
var directionalLight1=新的三个方向光(0xffffff,0.2);
directionalLight1.castShadow=true;
方向灯1.位置设置(1,-1,1);
场景。添加(方向光1);
var directionalLight1=新的三个方向光(0xffffff,0.2);
directionalLight1.castShadow=true;
方向灯1.位置设置(1,-1,-1);
场景。添加(方向光1);
var directionalLight1=新的三个方向光(0xffffff,0.2);
directionalLight1.castShadow=true;
方向灯1.位置设置(-1,1,1);
场景。添加(方向光1);
var directionalLight1=新的三个方向光(0xffffff,0.2);
directionalLight1.castShadow=true;
方向灯1.位置设置(-1,1,-1);
场景。添加(方向光1);
var directionalLight1=新的三个方向光(0xffffff,0.2);
directionalLight1.castShadow=true;
方向灯1.位置设置(-1,-1,1);
场景。添加(方向光1);
var directionalLight1=新的三个方向光(0xffffff,0.2);
directionalLight1.castShadow=true;
方向灯1.位置设置(-1,-1,-1);
场景。添加(方向光1);
添加(新的三个环境光(0xffffff.5));
var geom=新的三箱几何结构(50,50,0.1500,1,1);
几何顶点forEach(函数(v){
var x_val=Math.abs(v.x);
如果((x|val%9)<0.75(x|val%9)>8.25){
var m=parseInt(x_val/9)*9;
var l=0.75-(m-x_val);
v、 z=0.75*Math.sin(l*Math.PI/1.5);
}
如果(x|val%3<0.25 |(x|val%3)>2.75),则为else{
var m=parseInt(x_val/3)*3;
var l=0.25-(m-x_val);
v、 z=0.25*Math.sin(l*Math.PI/0.5);
}
});
geom.computeFaceNormals();
geom.computeVertexNormals();
var瓦楞纸=新的三网格(geom,新的三网格材料({color:“silver”}));
场景。添加(波纹);
render();
函数render(){
请求动画帧(渲染);
渲染器。渲染(场景、摄影机);
}
正文{
溢出:隐藏;
保证金:0;
}

我同意Mugen87关于在创作工具中制作东西的观点。 但是,如果出于某些原因,你不想使用可加载的东西,那么你可以做类似的事情,随心所欲地变换几何体(这里是一个粗略的概念):

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);
摄像机位置设置(0,5,15);
var renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
var灯光=新的三方向灯光(0xffffff,.5);
灯。位置。设置刻度(10);
场景。添加(灯光);
添加(新的三个环境光(0xffffff.5));
var w=5,
h=5;
var geom=新的三箱几何结构(w、h、0.125、50、1、1);
几何顶点forEach(函数(v){
如果(v.y>0){
v、 y+=(w/2)-Math.abs(v.x);//这里可以使用x中的任何依赖项y:)
}
});
几何顶点forEach(函数(v){
v、 z+=Math.sin(v.x*Math.PI*2)*.125;
});
geom.computeFaceNormals();
geom.computeVertexNormals();
var波纹=新的三网格(geom,新的三网格材料({
颜色:“银色”
}));
场景。添加(波纹);
render();
函数render(){
请求动画帧(渲染);
渲染器。渲染(场景、摄影机);
}
正文{
溢出:隐藏;
保证金:0;
}

我同意Mugen87关于在创作工具中制作东西的观点。 但是,如果出于某些原因,你不想使用可加载的东西,那么你可以做类似的事情,随心所欲地变换几何体(这里是一个粗略的概念):

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);
摄像机位置设置(0,5,15);
var renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
var灯光=新的三方向灯光(0xffffff,.5);
灯。位置。设置刻度(10);
场景。添加(灯光);
添加(新的三个环境光(0xffffff.5));
var w=5,
h=5;
var geom=新的三箱几何结构(w、h、0.125、50、1、1);
几何顶点forEach(函数(v){
如果(v.y>0){
v、 y+=(w/2)-Math.abs(v.x);//这里可以使用x中的任何依赖项y:)
}
});
几何顶点forEach(函数(v){
v、 z+=Math.sin(v.x*Math.PI*2)*.125;
});
geom.computeFaceNormals();
geom.computeVertexNormals();
var波纹=新的三网格(geom,新的三网格材料({
颜色:“银色”
}));
场景。添加(波纹);
render();
函数render(){
请求动画帧(渲染);
渲染器。渲染(场景、摄影机);
}
正文{
溢出:隐藏;
保证金:0;
}


我建议您使用Blender等内容创建工具创建模型。我