zoukankan      html  css  js  c++  java
  • WebGL中添加天空盒的两种方法

    天空盒 的添加可以让模型所在的场景非常漂亮,而其原理也是非常简单的,相信看完下面代码就可以明白了。

    说到天空盒的两种方法,倒不如说是两种写法,分别用了纹理加载的两个方法:loadTexture和loadTextureCube。

    特别注意:图片的顺序

    【方法一】

            var imagePrefix = "images/";

            var directions = ["posx", "negx", "posy", "negy", "posz", "negz"];

            var imageSuffix = ".jpg";

            var skyGeometry = new THREE.CubeGeometry(80000, 40000, 80000);

     

            var materialArray = [];

            for (var i = 0; i < 6; i++)

                materialArray.push(new THREE.MeshBasicMaterial({

                    map: THREE.ImageUtils.loadTexture(imagePrefix + directions[i] + imageSuffix),

                    side: THREE.BackSide

                }));

            var skyMaterial = new THREE.MeshFaceMaterial(materialArray);

            var skyBox = new THREE.Mesh(skyGeometry, skyMaterial);

            scene.add(skyBox);

    【方法二】

    var r = "textures/cloud/";

        var urls = [r + "posx.jpg", r + "negx.jpg",

                     r + "posy.jpg", r + "negy.jpg",

                     r + "posz.jpg", r + "negz.jpg"];

     

        textureCube = THREE.ImageUtils.loadTextureCube(urls);        //定义方盒纹理路径

     

        //====着色器===

        var shader = THREE.ShaderLib["cube"];

        shader.uniforms["tCube"].value = textureCube;

     

        var material = new THREE.ShaderMaterial({

            fragmentShader: shader.fragmentShader,

            vertexShader: shader.vertexShader,

            uniforms: shader.uniforms,

            depthWrite: false,

            side: THREE.BackSide

        }),

     

        mesh = new THREE.Mesh(new THREE.CubeGeometry(100, 100, 100), material);      //创建方盒子,并添加进方盒场景

        sceneCube.add(mesh);

  • 相关阅读:
    c# 复制整个文件夹的内容,Copy所有文件
    c# 创建文件夹
    c# 访问共享文件
    sublimit 编辑器 设置默认的编码
    WPF xml配置文件里面的大于小于号转义
    c# datatable 分组
    WPF 耗时操作时,加载loging 动画 (BackgroundWorker 使用方法)
    WPF DEV gridcontrol 自定义计算列(TotalSummary)
    postgresql 创建gin索引
    WPF DEV gridcontrol当前项的数据导出为mdb文件
  • 原文地址:https://www.cnblogs.com/dh-hui/p/4695259.html
Copyright © 2011-2022 走看看