想入shader的坑已经很久了,可是用directX框架太麻烦,unity的cg语言资源又不够多,偶尔接触到了openframework中的ofShader类,发现of能够用原生的GLSL写shader!!(废话。。。of就是基于opengl的)。我认为of框架还是比较好上手的,下面就来学习下第一个shader。
下面的代码是如何在of中使用shader,略去了setup等基础内容,有需要的可以看看of官方文档。
我们新建一个shader.frag文件放在bin/data下
//ofApp.cpp
//----------------------------------------------
void ofApp::draw(){
shader.load("","shader.frag");//读取shader
shader.begin();
shader.setUniform1f("iGlobalTime",ofGetElapsedTimef());//设置单元变量获取时间
shader.setUniform2f("iResolution",ofGetWidth(),ofGetHeight());