之前的demo看起来已经很真了,当然是在大家,一步一步step by step的情况下,被各种初始化的代码虐的体无完肤后的,才会有这么个感受。但是从一个对计算机图形无感的人来看,这当然是很粗糙的,比如看起来比较‘平’光线好像,对比不正常,所以我们现在要使用多重纹理,在这个新的demo里面我们使用了以下三种贴图
1.颜色贴图
这个提供了最基本的颜色,比如之前demo我们使用的。
2.法线贴图
法线贴图的本质是将一种额外的网格属性编码成RGB值存储在一张位图文件中,和光线的关系很大,光线入射到模型表面以后,发射光的方向就取决于法线方向。所以物体的明暗效果,就是由法线和光线决定的,而法线贴图,就是他们的基础色因为 漫反射下 漫反射光颜色 = 基础色*入射光颜色*cosa 。这个基础色就是法线贴图中获取的颜色。
3.高光贴图
这个高光贴图是指网格表面反光程度和反光量,和法线贴图类似。
demo来自第三章earth-shader.js 建议大家自己对照着官方demo看,这里暂时不提供下载,后续会集体放出
// Constructor
EarthApp = function()
{
Sim.App.call(this);
}
// Subclass Sim.App
// 还是继承Sim.App
EarthApp.prototype = new Sim.App();
// Our custom initializer
/**
* [init description]自定义初始化对象
* @param {[type]} param [description]
* @return {[type]} [description]
* @author {[name]} Daniel Wong
* @date {[date]}
* @about {[关于]}
*/
EarthApp.prototype.init = function(param)
{
// Call superclass init code to set up scene, renderer, default camera
//这里已经包括了必须的scene renderer camera
Sim.App.prototype.init.call(this, param);
// Create the Earth and add it to our sim
// 初始化地球&#x