使用ShaderMaterial对导入的模型贴皮肤失败

本文介绍了在three.js中遇到导入模型ShaderMaterial无法正确贴图的问题,分析原因是缺少UV坐标。解决方案包括在Blender中对模型进行UV展开和导出时勾选Export texture coordinates。详细步骤包括在Blender中进行UV Editing,选择需要贴图的部件,进行UV展开,并确保导出设置正确。此外,还提供了UV贴图和贴图绘制的注意事项。

关键代码

let uniformsBuild = null
let clockBuild = new THREE.Clock()

uniformsBuild = {
	time: { value: 1.0 }
}
let material = new THREE.ShaderMaterial({
	uniforms: uniformsBuild,
	vertexShader: document.getElementById('vertex_shader').textContent,
	fragmentShader: document.getElementById('fragment_shader').textContent
})
<script id="vertex_shader" type="x-shader/x-vertex">
  varying vec2 vUv;
  void main() {
	vUv = uv;
	vec4 mvPosition = modelViewMatrix * vec4( position, 1 );
	gl_Position = projectionMatrix * mvPosition;
  }
</script>
<script id="fragment_shader" type="x-shader/x-fragment">
  uniform float time;
  varying vec2 vUv;
  void main( void ) {
	vec2 position = vUv;
	float color = 0.0;
	color += sin( position.x * cos( time / 15.0 ) * 80.0 ) + cos( position.y * cos( time / 15.0 ) * 10.0 );
	color += sin( position.y * sin( time / 10.0 ) * 40.0 ) + cos( position.x * sin( time / 25.0 ) * 40.0 );
	color += sin( position.x * sin( ti
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值