在 Three.js 中获取彩色平面而不是纹理
Getting colored plane surface instead of texture in Three.js
我正在尝试在我的对象上应用纹理。但是我没有应用纹理,而只是对象上的彩色平面,这意味着如果我正在应用木质纹理图像,那么它只会采用棕色等纹理的颜色而不是实际纹理。
基本代码如下:
var loader = new THREE.STLLoader();
var newMaterial = new THREE.MeshPhongMaterial( { color: colorValue, specular: 0xffffff, shininess: 100 } );
loader.load( './models/stl/binary/'+top, function ( newGeometry ) {
newMesh = new THREE.Mesh( newGeometry, newMaterial );
newMesh.position.set( 0,0.6, 0 );
newMesh.rotation.set(0,0.8,0);
newMesh.scale.set( 0.04, 0.04, 0.04 );
scene.add( newMesh );
我尝试了以下应用纹理:
var newMaterial = new THREE.MeshPhongMaterial( { color: 0xffffff, specular: 0xffffff, shininess: 100, map: THREE.ImageUtils.loadTexture( "textures/table/lighttexture.jpg" ),
side: THREE.DoubleSide } );
newMaterial.map.minFilter = THREE.LinearFilter;
上述代码的结果是相同的,只是应用了纹理的颜色。
var texture = new THREE.TextureLoader().load( "textures/water.jpg" );
texture.wrapS = THREE.RepeatWrapping;
texture.wrapT = THREE.RepeatWrapping;
texture.repeat.set( 4, 4 );
var newMaterial = new THREE.MeshPhongMaterial( { color: 0xffffff, specular: 0xffffff, shininess: 100, map: texture } );
在上面的代码上出现错误:
Uncaught TypeError: Cannot set property 'wrapS' of undefined
谁能告诉我,我应该如何获得物体上的原始纹理?
编辑
纹理对于球体几何体工作正常,如以下代码所示。
var sphereGeometry = new THREE.SphereGeometry(1, 10, 10);
var mat = new THREE.MeshPhongMaterial();
mat.map = new THREE.ImageUtils.loadTexture(
"textures/table/lighttexture.jpg");
mat.transparent = true;
mat.side = THREE.DoubleSide;
mat.depthWrite = false;
mat.color = new THREE.Color(0xff0000);
var sphere = new THREE.Mesh(sphereGeometry, mat);
scene.add(sphere);
我怀疑您的几何图形没有正确的 UVS首先尝试对由三个生成的几何图形进行纹理处理
geometry = new THREE.PlaneGeometry(100,100);
如果纹理显示正确,则表示您从 STL 加载的几何体未设置 UVS 或具有不正确的值(如所有零)
要获得UVS的使用
geometry.faceVertexUvs
对于几何
和
geometry.getAttribute("uv")
如果您有缓冲区几何图形
相关文章:
- 在threejs中使用纹理网格和线框网格
- ThreeJS将画布中的文本渲染为纹理,然后应用于平面
- 无法在obj+mtl文件中加载纹理
- 嵌套JSON到平面HTML表
- 加载collada纹理数据(.jpg本身)时对其进行操作
- webgl在一个正方形上操纵两个纹理
- 如何在pixi.js多边形上放置纹理
- 如何在three.js中为三角形添加纹理
- Three.js CanvasRenderer,在将图像纹理设置为平面时出现问题
- 使用方程和/或矢量在三维空间中绘制二维平面
- 显示纹理-maya到three.js
- 如何将纹理打包器与纯javascript结合使用
- WebGL多纹理多维数据集
- 有没有一种方法可以在three.js中自定义纹理之间的转换
- array_push平面数组问题-需要能够向数组中添加多个变量
- 三.js - 具有透明纹理的相交平面
- 在 Three.js 中获取彩色平面而不是纹理
- 如何在three.js中修复圆角平面上的纹理
- Threejs-将纹理应用于平面总是渲染为黑色,
- Three.js -创建有纹理的平面圆…