| PMG http://forum.pmg.org.ru/ |
|
| Пишу на си http://forum.pmg.org.ru/viewtopic.php?f=1&t=176 |
Страница 1 из 1 |
| Автор: | BAPBAP [ 04 янв 2006 20:48 ] |
| Заголовок сообщения: | |
Тебе что, кусок кода надо сюда дать или в чём был вопрос ?
|
|
| Автор: | MagicWolf [ 11 янв 2006 10:11 ] |
| Заголовок сообщения: | |
Что не понятно в уроке по загрузке мира? |
|
| Автор: | Master Of Puppets [ 25 фев 2006 20:19 ] |
| Заголовок сообщения: | |
Вот я чуть-чуть переделал эту штуку (+выбираеться номер текстуры - текстуры считываються с файла и нумеруються, кому надо - скину...): typedef struct tagVERTEX // Создаём стр-ру нашей вершины { float x, y, z; // 3D координаты float u, v; // Координаты на текстуре } VERTEX; typedef struct tagTRIANGLE { VERTEX vertex[3]; // Массив трёх вершин int numtexture; } TRIANGLE; typedef struct tagSTRIG { int numtriangles; // Кол-во треугольников в секторе TRIANGLE* triangle; // Ссылка на массив треугольников } STRIG; STRIG sectorT; //................................ void LoadTriangles() { char fline[255]; int numtriangles; int numtexture; FILE *filein; filein = fopen(ftrian, "rt"); ReadStr(filein,fline); sscanf(fline, "NUMPOLLIES %d\n", &numtriangles); float x, y, z, u, v; sectorT.triangle = new TRIANGLE[numtriangles]; sectorT.numtriangles = numtriangles; for (int triloop = 0; triloop < numtriangles; triloop++) { ReadStr(filein,fline); sscanf(fline,"TEXTURE %d\n", &numtexture); sectorT.triangle[triloop].numtexture = numtexture; for (int vertloop = 0; vertloop < 3; vertloop++) { ReadStr(filein,fline); sscanf(fline, "%f %f %f %f %f", &x, &y, &z, &u, &v); sectorT.triangle[triloop].vertex[vertloop].x = x; sectorT.triangle[triloop].vertex[vertloop].y = y; sectorT.triangle[triloop].vertex[vertloop].z = z; sectorT.triangle[triloop].vertex[vertloop].u = u; sectorT.triangle[triloop].vertex[vertloop].v = v; } } fclose(filein); } void ViewPolygones() { GLint numpol = sectorT.numtriangles; GLfloat x_m, y_m, z_m, u_m, v_m; // Выводим на экран треугольники glNormal3f( 0.0f, 1.0f, 0.0f); for (int loop_m = 0; loop_m < numpol; loop_m++) { glNormal3f( 0.0f, 0.0f, 1.0f); glBindTexture(GL_TEXTURE_2D, texture[sectorT.triangle[loop_m].numtexture-1]); glBegin(GL_TRIANGLES); for (int i = 0; i < 3; i++) { x_m = sectorT.triangle[loop_m].vertex[i].x;// X 1-ой точки y_m = sectorT.triangle[loop_m].vertex[i].y;// Y 1-ой точки z_m = sectorT.triangle[loop_m].vertex[i].z;// Z 1-ой точки u_m = sectorT.triangle[loop_m].vertex[i].u; v_m = sectorT.triangle[loop_m].vertex[i].v; glTexCoord2f(u_m,v_m); glVertex3f(x_m,y_m,z_m); } glEnd(); } } |
|
| Автор: | MagicWolf [ 26 фев 2006 11:56 ] |
| Заголовок сообщения: | |
Работает? |
|
| Автор: | Master Of Puppets [ 28 фев 2006 22:34 ] |
| Заголовок сообщения: | |
Работает, и я еще добавил вывод четырехугольников... (хотя треугольники выводятся быстрее, но мне кубы легче строить ). В будущем хочу сделать эти полигоны в виде обьектов, к примеру: Tree.txt, MyHouse.txt...
|
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|