第4.2章 材质贴图2—立方体贴图例子逐步解释

第1步:定义纹理坐标
      下面的步骤操作和代码指定纹理坐标,将其添加到一个数组,并添加到数组的缓冲区。该setVertexStream ( )函数指定如何读取缓冲区,并设置了一个顶点缓冲流。

 

      指定(u,v)纹理坐标为每个顶点,并将其添加到一个数组( texCoordsArray ):

 

创建一个顶点缓冲区保存纹理坐标( texCoordsBuffer ) 。并在这个缓冲区设置纹理坐标数组:

 

      调用setVertexStream ()函数,将纹理坐标缓冲区和基元数据流银行关联起来。调用这个函数设置语义纹理坐标顶点流( TEXCOORD )以及有关如何读取数据流中数据的其他信息:

 

 

第2步 :创建纹理取样器
下面的步骤操作和代码创建纹理采样和确定其状态。

 

•调用Effect.createUniformParams ( )创建一个材料参数的每一个效果的统一的参数(即,参数,适用于原始作为一个整体) 。在这个例子中,有一个统一的参数,纹理取样器:

 

•获取材料的采样参数:

 

•创建纹理采样器,并设定其状态。该例子的缩小过滤器( minFilter )设置为各向异性ANISOTROPIC。从某一角度看,此值可以提高纹理的质量:

 

•将此纹理采样器赋值给材质采样器参数:

 

 

第3步:获取纹理

      下面演示了初始化材质贴图文件的路径参数,并且当用户改变材质贴图文件时,这个路径参数会发生相应的改变。

• 初始化纹理网址(在 initStep2 ()函数中)

  

 

•每当用户指定一个新的纹理,在changeTexture ( )函数获取一个新的纹理文件。

 

    这个函数使用util.loadTexture ( )从指定的地址加载纹理。此实用工具,反过来,调用createFileRequest ()函数。根据预设, createFileRequest ( )创建了一套mipmaps时加载纹理。如果您知道您不会使用mipmapping ,您可以明确要求加载纹理文件,并指定generateMipmaps属性FileRequest为FALSE 。

 

•在<body>的HTML网页,添加用户输入框和按钮,使用户可以指定一个新的纹理:

 

第4步:创建着色器

       在这个例子中, <textarea>元素包含的代码顶点和像素着色器。输入属性的顶点着色器的位置,有语义的立场,有语义的TEXCOORD0 。顶点着色器转换成均匀顶点位置剪辑空间。在这里,立场载于positionsBuffer和纹理坐标载于texCoordsBuffer 。顶点着色器通过纹理坐标值( TEXCOORD0 )通过不变( output.tex = input.tex ; ) 。支持Pixel Shader然后在查询中每个像素的原始和效益的颜色相应位的纹理贴图。以下是代码的顶点和像素着色器:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值