博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建自己的着色器程序
阅读量:4111 次
发布时间:2019-05-25

本文共 1496 字,大约阅读时间需要 4 分钟。

哈,第一个着色器程序,就弄个非常简单,非常快就能够看到效果的吧。就像学习C++时,输出的hello world这般简单吧。

绘制一个恒定着色的没有纹理的茶壶,然后给它添加纹理和更多的颜色。

创建包含着色器程序的特效组

选择Effect Group w/ OpenGL Effect,如果想用DirectX,可以选上面一个。没什么关系,我基本上只接触OpenGL,而且只准备学习GLSL,so,我就选择我的选择了,哈哈。
完成上述后,就会发现预览窗口已经有东西被渲染好了。这个不奇怪,Render Monkey会自动用一个小而简单的着色器程序来填充特效组。得到结果如下:
不过咱们可是要从零开始构建,so,请把特效组下所有的结点给删除吧。亲亲……删除期间会有错误蹦出,别管他。。
1、添加渲染模型
            我选了teapot.3ds,你要选什么,看你了……
2、顶点结构映射
           教材上说的是:设置模型后,需要告诉Render Monkey模型的几何信息是如何被发送给顶点着色器的。
           默认的顶点结构映射只包含位置信息,双击顶点结构映射,在弹出的对话框内可以添加其他的映射信息,比如可以添加法线,纹理坐标,对于当前要开发的shader 来说是足够的了。
           我只找到了stream mapping,好吧,感觉翻译不对,还是什么问题。不管了,往下走。
           右击Effects,添加stream mapping。双击,则出现对话框了,看看吧。我添加了法线和纹理坐标。这个里面按钮的功能,大家根据字面意思应该懂吧。Add——添加,Reset重新设置,Usage不知道怎么翻译,不过下面选择的是:顶点结构映射的信息。后面的X是删除,然后旁边的上、下按钮是调节其参数信息的位置的。对点击一下就能够发现了。
3、添加变量
         因为此时我们的shader很基础,只需要添加一个变量,即相机透视变换矩阵。
         view-projection matrix,在图形学中,是通过相机变化矩阵和透视变换矩阵相乘而得。
         同样步骤,右击Effects,在Add variable中选择matrix,->predefined,然后就可以选择了view-projection matrix。
4、添加渲染pass
         除了渲染pass,其他的元素都以齐全。
        要添加一个渲染pass,右击特效节点,选择添加pass。
        这样就会为你创建一个新的pass,该pass 由默认参数进行填充(所谓默认,就是做顶点着色器最基本的步骤,即将物体变换到齐次裁剪空间)。
         现在删除这个pass 中的所有元素,我们来从0开始重新创建它的元素。
         A     添加模型和顶点结构映射的引用           
                      目的:需要告诉渲染pass,它在这个阶段需要采用哪一个模型,哪一个顶点结构映射。
                      
 可以直接添加模型以及顶点结构映射,也可以先添加Stream Mapping Reference和Model Reference,然后指定引用结点为任一你所拥有的结点,顶点结构映射也会一个道理。
         B    添加顶点着色器代码和像素着色器代码
                  
                
                
           新创建的顶点着色器,像素着色器将会被添加一些默认的代码,可以添加自己的代码,不过现在还没有到学习代码的阶段,所以,就先使用默认的了。
5、点击 Preview Window,就出现效果了。
可以看看顶点着色器和像素着色器中的代码,很简单。嗯嗯,这个部分就介绍完了,贴纹理什么的,等下午看看。。
嗯嗯,下面共享一个文件,是我学习这个的资料。不过,资料很少,但是能够让我们了解一下其框架。
 http://download.csdn.net/detail/smbluesky/7401961
你可能感兴趣的文章
Mysql初始化的命令
查看>>
day_21_0817_Mysql
查看>>
day-22 mysql_SQL 结构化查询语言
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
HTML&CSS进阶
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
菜单树
查看>>
MySQL-分布式架构-MyCAT
查看>>
设计模式六大原则(6):开闭原则
查看>>
阿里面试总结--JAVA
查看>>
Servlet的生命周期
查看>>
JAVA八大经典书籍,你看过几本?
查看>>
《读书笔记》—–书单推荐
查看>>
【设计模式】—-(2)工厂方法模式(创建型)
查看>>
有return的情况下try catch finally的执行顺序(最有说服力的总结)
查看>>