Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
4-1121698162
Docent
2005-07-18 18:49
2005.09.04
Хук на Edit


1-1124189750
chili
2005-08-16 14:55
2005.09.04
Помогите с алгоритмом переноса по пробелу для Button.Caption


3-1122450217
Zmiy
2005-07-27 11:43
2005.09.04
ADOStoredProc


1-1123778951
Дельфин
2005-08-11 20:49
2005.09.04
Изменение курсора на границе панели


3-1122445199
Rea
2005-07-27 10:19
2005.09.04
Инфа о доступе к БД с использ метода ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский