homework helpers. content off files stl: vector, algorithm model loaders: obj, 3ds
TRANSCRIPT
![Page 1: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/1.jpg)
Homework Helpers
![Page 2: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/2.jpg)
Content
• OFF files• STL: vector, algorithm• Model loaders: OBJ, 3DS
![Page 3: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/3.jpg)
OFF Format
• Geomview Object File Format
• Model archives (1, 2)
![Page 4: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/4.jpg)
OFF Reference
![Page 5: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/5.jpg)
![Page 6: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/6.jpg)
STL:vector
• Iterators: begin(), end()• Size(), operator[]• Modifiers: – push_back(..), – pop_back(), – insert (iter, …), – erase (iter), – clear();
![Page 7: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/7.jpg)
Element Access
![Page 8: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/8.jpg)
![Page 9: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/9.jpg)
Algorithm: sort (first, last [,compare])
![Page 10: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/10.jpg)
OBJ (Wavefront) File Structure
• Outline– v: geometry, vn: vertex normal, vt: texture coordinates– f: face specification (v)/(vt)/(vn)
• vertex count starting from 1– mtllib: material library– usemtl: material name– #: comments– g: group
• References: (1)
![Page 11: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/11.jpg)
Typical MTL File
Ns: shininessOBJ [0,1000]OpenGL [0,128]
![Page 12: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/12.jpg)
Using OBJ Loader
• Files: glm.c, glm.h (from Nate Robin)
• Related:– Free 3D models on the
Internet (3dcafe, …)– Model converter (deep
exploration)
• Important APIs:– glmUnitize (m)– glmFacetNormals (m)– glmVertexNormals (m)– glmLinearTexture (m)– glmSpheremapTexture(m)– glmDelete (m)– glmScale(m,scale)– glmReadOBJ (filename)– glmDraw (m, mode)– glmList (m, mode)
• See glm.h for more details
![Page 13: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/13.jpg)
Typical Usage
• Load model
• Render model– glmDraw (pmodel, mode);– mode: bitwise-ORed options– GLM_FLAT, GLM_SMOOTH, GLM_MATERIAL, GLM_TEXTURE (for models with
textures)• Example:
– glmDraw (pmodel, GLM_SMOOTH | GLM_MATERIAL);– glmDraw (pmodel, GLM_SMOOTH | GLM_MATERIAL | GLM_TEXTURE);
centered at origin, [-1,1]3 bounded
![Page 14: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/14.jpg)
OBJ Models with Textures
• Draw model using glmDraw (GLM_SMOOTH|GLM_MATERIAL|GLM_TEXTURE);
• Only load png textures
![Page 15: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/15.jpg)
What exactly is in glmDraw?Every group has one material!
![Page 16: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/16.jpg)
Restrictions
• One “usemtl” per group• Only “map_Kd” is handled
![Page 17: Homework Helpers. Content OFF files STL: vector, algorithm Model loaders: OBJ, 3DS](https://reader035.vdocuments.net/reader035/viewer/2022062309/56649f295503460f94c42bfb/html5/thumbnails/17.jpg)
Builds: 3ds2obj & 3dsdump
For 3DS Models