如何给Three.js中的金戒指增加反射率?
How to add reflectivity to the golden ring in Three.js?
我有一个从搅拌机导出的金戒指网格的 stl 文件。当我将它导入三个 JS 并添加图像纹理以获得金色金属效果时,纹理没有正确应用。
有什么建议吗?
这是代码,
loader.load( objaddress, stladdress, function ( object ) {
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
material = new THREE.MeshPhongMaterial({map: new THREE.ImageUtils.loadTexture("Gold.jpg")});
child.material = material;
}
} );
这是我用过的 jpg 文件 url:
http://cdn.designbeep.com/wp-content/uploads/2012/10/7.gold-textures.jpg
从外部文件加载几何体后,使用三个 js ShaderMaterial 为加载的几何体创建 material。在 ShaderMaterial 内部指定图像纹理以及平滑度、噪声、环绕以获得更好的外观和感觉。
供参考:http://threejs.org/docs/#Reference/Materials/ShaderMaterial
这是为几何体创建着色器的代码material,
var material = new THREE.ShaderMaterial({
uniforms: {
tMatCap: {
type: 't',
value: THREE.ImageUtils.loadTexture('Gold.jpg')
},
time: {
type: 'f',
value: 0
},
bump: {
type: 'f',
value: 0
},
noise: {
type: 'f',
value: .04
},
useNormal: {
type: 'f',
value: 0
},
normalScale: {
type: 'f',
value: .5
},
normalRepeat: {
type: 'f',
value: 1
} });
我有一个从搅拌机导出的金戒指网格的 stl 文件。当我将它导入三个 JS 并添加图像纹理以获得金色金属效果时,纹理没有正确应用。
有什么建议吗?
这是代码,
loader.load( objaddress, stladdress, function ( object ) {
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
material = new THREE.MeshPhongMaterial({map: new THREE.ImageUtils.loadTexture("Gold.jpg")});
child.material = material;
}
} );
这是我用过的 jpg 文件 url: http://cdn.designbeep.com/wp-content/uploads/2012/10/7.gold-textures.jpg
从外部文件加载几何体后,使用三个 js ShaderMaterial 为加载的几何体创建 material。在 ShaderMaterial 内部指定图像纹理以及平滑度、噪声、环绕以获得更好的外观和感觉。
供参考:http://threejs.org/docs/#Reference/Materials/ShaderMaterial
这是为几何体创建着色器的代码material,
var material = new THREE.ShaderMaterial({
uniforms: {
tMatCap: {
type: 't',
value: THREE.ImageUtils.loadTexture('Gold.jpg')
},
time: {
type: 'f',
value: 0
},
bump: {
type: 'f',
value: 0
},
noise: {
type: 'f',
value: .04
},
useNormal: {
type: 'f',
value: 0
},
normalScale: {
type: 'f',
value: .5
},
normalRepeat: {
type: 'f',
value: 1
} });