纹理贴图

这一节是摘抄自Unity Shader and Effect Cookbook 上面的 2.2 节。这书写的简单易懂,每天花一点时间学习一小节,慢慢来。

这一节学的是用修改UV值来实现纹理贴图的滚动,标题太长,其实就是让一个图片在滚来滚去,来模拟一些水流效果之类的。

这个效果其实在逻辑代码中也可以写,就是修改图片的坐标,不过在逻辑代码中的话需要两张图片来交替出现,而在 Shader中,因为 UV 坐标超过 1之后又会重新从 0 开始,所以只要一个Texture 就可以了。

来看看这个技术在其它游戏中的应用

1

图中的岩浆效果就是 UV 贴图滚动哈。

下面开始记录学习过程。

首先创建一个新的 shader,改名叫 Scroll UV。

创建一个新的 Material,改名叫 Scroll UV。

修改 Scroll UV 这个 Shader,改名

Cocos2dx-OpenGL ES2.0教程:纹理贴图(6)

作者:乐逍遥Jun

上一篇文章中,我们介绍了如何绘制一个立方体,里面涉及的知识点有VBO(Vertex Buffer Object)、IBO(Index Buffer Object)和MVP(Modile-View-Projection)变换。

本文将在教程4的基础之上,添加纹理贴图支持。最后,本文会把纹理贴图扩展至3D立方体上面。

基本方法

当我们把一张图片加载到内存里面之后,它是不能直接被GPU绘制出来的,纹理贴图过程如下:

首先,我们为之前的顶点添加纹理坐标属性并传到vertex shader里面去,然后把内存里面的纹理传给GPU,最后,在fragment shader里面通过采样器,就可以根据vertex shader传递过来的纹理坐标把纹理上面的颜色值用插值的方式映射到每一个像素上去。

接下来,让我们看看具体怎么做。

准备纹理坐标(纹理坐标也叫UV坐标)

同步内容
--电子创新网--
粤ICP备12070055号