转发,请保持地址:http://blog.csdn.net/stalendp/article/details/11492525
OpenGL是原理性和实践性比较强的一门技术,在学习的时候,如果能够跟着书中的例子,一边调试一边学习,效果将很好(这属于实验的一种类型吧,能够吧知识形象化,有助于学习兴趣的提高)。市面上有许多深入浅出的书籍讲的很好,比如《OpenGL SuperBible 5th Edition》、《OpenGL 4 Shanding Language Cookbook》等(前者的例子代码写的非常好,后者把OpenGL的原理讲的比较深入)。不过把这些书中的代码跑在特定的系统上,还是需要花一些代价的(比如在mac上,SLGL只支持到1.2,很多例子中的代码就需要改了;而且配置环境也是比较麻烦的)。在探寻了很久之后,发现Unity3D提供了很好的OpenGL的学习环境,并且还有一些很好的资料可以参考(强烈推荐Kenny Lammers的《Unity Shaders and Effects Cookbook》)。本文将介绍怎么在Unity3D上学习SLGL(关于OpenGL的pipeLine、VBO、PBO等其他一些,可以参考上面推荐的两本书,特别是把《OpenGL SuperBible 5th Edition》的那套工具类搞懂,就非常OK了)。这片文章源于对Minimal Shader的一个翻译和整理。
一、配置启动项(只有windows上需要)
在Unity3d的桌面图标的属性中(右击图标选择属性,弹出的对话框中),在“目标”属性中,添加启动参数“-force-opengl”,变为如下:
"C:\Program Files\Unity\Editor\Unity.exe" -force-opengl
二、创建Shader
1. 创建一个新项目,在界面下方的Project面板中,选择Create->Shader,创建一个Shader,并命名为Test01,如下图:
2。双击Shader01,打开MonoDevelop编辑器,把下面的代码替换原来的,并保存:
Shader "GLSL basic shader" { // defines the name of the sha