Számítógépes grafika OpenGL 5. gyakorlat
Pipeline Vertex shader Fragment shader
Obj fájlok Obj betöltő: http://people.inf.elte.hu/tremere/bsc_cg/09- 10-2/ObjLoader.zip egyszerűsített .obj betöltő egyetlen objektumot tartalmazó, csak háromszögekből álló modellek betöltésére lehet használni
main.cpp #include "Mesh.h" #include "ObjParser.h" Mesh *mesh = 0;
void Init() void Init() { mesh = ObjParser:: parse("Suzanne.obj"); mesh->initBuffers(); ...
void CleanUp() void CleanUp() { delete mesh; glDeleteBuffers( 1, &g_vb); cgDestroyProgram( g_cgVertex); cgDestroyProgram( g_cgFragment); cgDestroyContext( g_cgContext); }
Render() void Render() { ... cgGLBindProgram( g_cgFragment); cgGLEnableProfile( g_cgFragmentProfile); mesh->beforeDraw(); mesh->draw(); mesh->afterDraw();
Feladat Pattogjon Suzanne
glm glm::cross(a, b): a és b vektorok vektoriális szorzata a visszaadott érték glm::normalize(a): az a vektor normalizálása (egység hosszra hozása)
Nézet transzformáció Z vLookatPt vUpVec vEyePt Y X
m_lookAt m_eye
Feladat A w, a, s, d billentyűk segítségével mozogjunk előre, balra, hátra, jobbra Az egér jobbra-balra mozgatásával nézelődhessünk jobbra-balra Az egész fel-le mozgatásával nézelődhessünk fel-le
Feladat Textúra betöltése