GO BACK I WANT TO BE MONKEY!

This commit is contained in:
Luca Conte 2024-05-02 14:19:25 +02:00
parent 95642ae818
commit 4b08999862
3 changed files with 126901 additions and 2 deletions

View File

@ -132,7 +132,7 @@ void init(void) {
// --------------- READ teapot.obj
ParsedObjFile teapot = readObjFile("teapot.obj");
ParsedObjFile teapot = readObjFile("monkey.obj");
numFaces = teapot.length;
// write teapot faces to buffer

126866
u07-light/monkey.obj Normal file

File diff suppressed because it is too large Load Diff

View File

@ -49,7 +49,13 @@ ParsedObjFile readObjFile(char* path) {
}
}
if (buf[0] == 'f') {
numFaces++;
int numSpaces = 0;
for (int i = 0; i < strlen(buf); i++) {
if (buf[i] == ' ') {
numSpaces++;
}
}
numFaces += numSpaces - 2;
}
}
@ -118,6 +124,33 @@ ParsedObjFile readObjFile(char* path) {
curFace++;
int numSpaces = 0;
for (int i = 0; i < strlen(buf); i++) {
if (buf[i] == ' ') {
numSpaces++;
}
}
if (numSpaces == 4) {
sscanf(buf,
"f %d/%d/%d %*d/%*d/%*d %d/%d/%d %d/%d/%d",
&v1, &vt1, &vn1,
&v2, &vt2, &vn2,
&v3, &vt3, &vn3
);
memcpy(&faces[curFace].v1.position, &vertices[v1 - 1], sizeof(vec3));
memcpy(&faces[curFace].v2.position, &vertices[v2 - 1], sizeof(vec3));
memcpy(&faces[curFace].v3.position, &vertices[v3 - 1], sizeof(vec3));
memcpy(&faces[curFace].v1.normal, &normals[vn1 - 1], sizeof(vec3));
memcpy(&faces[curFace].v2.normal, &normals[vn2 - 1], sizeof(vec3));
memcpy(&faces[curFace].v3.normal, &normals[vn3 - 1], sizeof(vec3));
curFace++;
}
// TODO: textures
}