PMG
http://forum.pmg.org.ru/

Пишу на си
http://forum.pmg.org.ru/viewtopic.php?f=1&t=176
Страница 1 из 1

Автор:  BAPBAP [ 04 янв 2006 20:48 ]
Заголовок сообщения: 

Тебе что, кусок кода надо сюда дать или в чём был вопрос 8-) ?

Автор:  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/