学习书本:shader开发实战,使用工具:openFrameworks
1.创建第一个项目,新的项目包含3个源代码文件:main.cpp,ofApp.h,offApp.cpp。main中需要配置OpenGL版本,如下:
#include "ofMain.h"
#include "ofApp.h"
//========================================================================
int main( ){
ofGLWindowSettings glSetting;
glSetting.setSize(1024,768);
glSetting.windowMode = OF_WINDOW;
glSetting.setGLVersion(4,1);
ofCreateWindow(glSetting);
ofRunApp(new ofApp());
}
2.创建第一个三角形
openFrameworks中表示网格的类是ofMesh。现创建一个ofMesh对象,并使用该对象的addvertex()函数提供顶点位置。其中openFrameworks使用数学库GLM处理数学向量问题。setup()只在第一帧调用,类似unity中的start()方法,draw每一帧调用。下图即是该代码块运行画面:
注意:左上角坐标为(0,0)
//第一帧调用
void ofApp::setup(){
triangle.addVertex(glm::vec3(0,0,0));
triangle.addVertex(glm::vec3(0, 768.0, 0));
triangle.addVertex(glm::vec3(1024.0, 768.0, 0));
}
//每一帧调用
void ofApp::draw(){
triangle.draw();
}
3.通过按键移动三角形位置
void ofApp::keyPressed(int key){
glm::vec3 curpos = triangle.getVertex(2);
triangle.setVertex(2, curpos+glm::vec3(0, 20.0, 0));
}