《webgl入门指南》学习笔记三之three.js创建多重纹理

本文是《webgl入门指南》的学习笔记,重点介绍如何使用three.js创建多重纹理,包括颜色贴图、法线贴图和高光贴图。法线贴图影响物体的明暗效果,高光贴图则表示网格表面的反光程度。通过这些技术,可以提升3D模型的真实感和视觉效果。
摘要由CSDN通过智能技术生成

之前的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值