Three.js入门学习笔记06:外部模型导入-C4D转成json文件供网页使用-材质导入

参考学习:
Three.js入门指南
https://www.ituring.com.cn/book/1272
https://www.scaugreen.cn/posts/30679/

今日目标:把带材质的模型能够良好的导入网页中

有错误的地方欢迎指正,我会仔细研究学习,加以改进哒~~~~~

一.导入obj格式的静态外部模型

教程参考:https://www.ituring.com.cn/book/miniarticle/53881

(一).引入无材质模型,在代码中设置材质

1.引入OBJLoader.js文件

<script type="text/javascript" src="js/OBJLoader.js"></script>

2.在代码中写材质

var lo

3.双面绘制+动画

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/three.js"></script>
<script type="text/javascript" src="js/OBJLoader.js"></script>
</head>

<body>
<script type="text/javascript">
          var mesh = null;
          var id = null;
         //renderer
         var renderer = new THREE.WebGLRenderer();
            renderer.setSize(800 ,600);
            document.getElementsByTagName("body")[0].appendChild(renderer.domElement);
            renderer.setClearColor(0x000000);
             
         //scene
         var scene = new THREE.Scene();
         
         //camera
         var camera = new THREE.OrthographicCamera(-4, 4, 3, -3, 0.1, 100);
            camera.position.set(15, 30, 25);
            camera.lookAt(new THREE.Vector3(0,0,0));
            scene.add(camera);
             
         //model
         var loader = new THREE.OBJLoader();
            loader.load("model/port2.obj",function(obj){
            obj.position.set(0,-2,0);
            obj.scale.multiplyScalar(.5);
            obj.traverse(function(child) {
                        if (child instanceof THREE.Mesh) {
                                child.material = new THREE.MeshLambertMaterial({
                                    color: 0xffff00,
                                    side: THREE.DoubleSide
                                
                          });
                        }
                 });
             mesh = obj;
             scene.add(obj);
             
         });
             
         //light
         var light = new THREE.DirectionalLight(0xffffff);
            light.position.set(10,10,5);
            scene.add(light);
             
        //render
        id = setInterval(draw, 20);
             
        function draw() {
           renderer.render(scene, camera);
           mesh.rotation.y += 0.01;
                if (mesh.rotation.y > Math.PI * 2) {
                    mesh.rotation.y -= Math.PI * 2;
                }
                
            }
        </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值