Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
1-1123661183
Andry
2005-08-10 12:06
2005.09.04
Размер шрифта


14-1123777139
ДИМОН
2005-08-11 20:18
2005.09.04
Курсоры


1-1123963190
Константинов
2005-08-13 23:59
2005.09.04
Как работать с Unicode?


8-1114267723
COOLer
2005-04-23 18:48
2005.09.04
Ох уж этот TImage


3-1122002130
lexus3d
2005-07-22 07:15
2005.09.04
абсолютное удаление записей из БД?