Форум: "Игры";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
ВнизOpenGL - Lists vs. Arrays Найти похожие ветки
← →
grouzd[E]v © (2005-05-05 21:47) [0]Доброе утро/день/вечер, вел. и уж. мастера!
Вопрос такой: почему не получается создавать gl-листы? используя
переменные значения, допустим, у меня есть массив mesh"ей, содержащий
массивы вершин и ребер. так вот - если перерисовывать сеть так:
for i1 := 1 to =все ребра= do
with =очередное ребро= do
begin
glBegin(GL_POLYGON);
glNormal3f(x,y,z);
for i2 := 1 to 3 do
with =очередная вершина ребра= do
begin
glNormal3f(n.x,n.y,n.z); //ну это если нужно сгладить
glVertex3f(x,y,z);
end;
glEnd;
end;
то все пашет. А можно ли записать эти команды в списки а при перерисовке
просто вызывать их? И еще вопрос: будет ли это быстрее работать или можно не мучиться (ибо я маюсь именно из-за производительности).
Кстати, для хранения координат вершин я использую single. Будет ли лучше если я перейду на gl-типы?
бАльшое спОсиба!
← →
XProger © (2005-05-05 22:22) [1]рисуй массивом!
gl-типы - это что ваще?
← →
grouzd[E]v © (2005-05-07 17:15) [2]Спасибо, блнъ! Как это - рисовать массивом?
А gl-типы - это GLFloat, GLInt и т.д.
← →
П7 (2005-05-07 18:20) [3]Действиетельно, почему это у тебя не получается создавать gl-листы?
> XProger © (05.05.05 22:22) [1]
Ы!!! Не позорь свою седую голову! (:
← →
grouzd[E]v © (2005-05-07 19:09) [4]Так че все-таки быстрей? Продолжать копать или плюнуть на это дело?
← →
XProger © (2005-05-07 21:22) [5]gl-типы - это Cardinal, Word, Byte, single, double, integer, ShortInt, SmallInt... Следовательно никакого прироста в скорости их юзание не даст ибо это просто типизация типов :)
П7, это был наводящий на эту мысль, служащий ответом на вот этот вопрос - "Будет ли лучше если я перейду на gl-типы?" если ты не догадался... ;)
grouzd[E]v, рисуй так:
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
// glEnableClientState(GL_TEXTURE_COORD_ARRAY); - тебе это не нужно вроде
glVertexPointer(3, GL_FLOAT, 0, @Vertex[0]);
glNormalPointer(GL_FLOAT, 0, @Normal[0]);
//glTexCoordPointer(2,GL_FLOAT, 0, @TexCoord[0]);
glDrawElements(GL_TRIANGLES, Length(Poly)*3, GL_UNSIGNED_SHORT, @Poly[0]);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
//glDisableClientState(GL_TEXTURE_COORD_ARRAY);
← →
grouzd[E]v © (2005-05-10 13:13) [6]To XProger (да вообщем-то для всех):
Я просек (о чудо!...), что списки не получается создавать потому что я гружу вершины из файла, поэтому их координаты - переменные. Рисовать массивом тоже не получается - есть подозрение что я подключаю не те массивы не в то место. Объясните подробнее, чего куда писать (читать SDK пробовал, но там на англ. и c++ - понятно меньше половины)
Допустим, у меня есть объект типа TMyMesh:
TVFMMesh = class
...
vertexes : array[1..max_vertexes] of TMyVertex;
faces : array[1..max_faces] of TMyFace;
total_faces, total_vertexes : integer;
...
vertexes содержит координаты всех вершин объекта, faces - номера этих вершин для соединения их в грани
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c