Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Вниз

Ошибка в рендере ландшафта   Найти похожие ветки 

 
Ford ©   (2006-09-29 20:20) [0]

Здраствуйте.

Помогите выловить баг, програмир. на Delphi, апи DX.

Имееться класс ландшафта, ландщафт 16 на 16,  256 вершиных буферов,  
идёт цикл рендера каждого буфера,  доходя до 253 буфера возникает исключенние
EAcessVialotion, оставшившиеся 3 буфера не рендериться даже если рендерить 253, 254, 255 буфер
вне цикла всё ровно возникает ошибка, хотя данные в них правильнные, проверил лично.
Вне класса  (процедурно) ландшафт рендериться без ошибок все 256 буферов рисуються.
Ещё одно ошибка может вылезти, может не вылезти

В чём может быть проблемма, весь аналогичный код вне класса идеальнно работает, в классе возникает ошибка.
Предполагаю что дело в неправильном использованние памяти, но не понятно как исправлять, кто что может подсказать ???

ps
pliz не удалять, оченб срочно надо найти решенние данной проблемы


 
@!!ex ©   (2006-09-29 20:55) [1]

Ну ты крут...
ТАКОЕ и без примера?
Типа тут все экстрасенсы?


 
RzCoDer ©   (2006-09-29 21:17) [2]


> Типа тут все экстрасенсы?

а что, разве нет? ;)


 
Ford ©   (2006-09-29 21:35) [3]

рендер, ни чем особо не отличаеться, всё верно работает.
------------------------

 self.Scene.SceneCore.dxDevice.SetFVF(TDXVertexTerrainFVF);
 self.Scene.SceneCore.dxDevice.SetIndices(FIndexBuffer.AsBuffer);

 for i:= 0 to High(FVertexBuffers)  do
 begin

   self.Scene.SceneCore.dxDevice.SetStreamSource(0, FVertexBuffers[i].ASBuffer, 0, FVertexBuffers[i].SizePerVertex);

   self.Scene.SceneCore.dxDevice.DrawIndexedPrimitive(D3DPT_TRIANGLESTRIP,
     self.RenderInfo.InfoFromIndexBuffer.BaseVertexIndex,
     self.RenderInfo.InfoFromIndexBuffer.MinIndex,
     self.RenderInfo.InfoFromIndexBuffer.NumVertices,
     self.RenderInfo.InfoFromIndexBuffer.StartIndex,
     self.RenderInfo.InfoFromIndexBuffer.PrimitiveCount
   );

 end;
-------------------------

в этом цикле при подходе к 253-255 буферам, происходит ошибка, причём данные в них есть, они верны, если же использовать вне класса и они рендериться, что за фигня хз, если какая нибудь разница в расположенния данных в памяти между ООП и процедурного.


 
Ford ©   (2006-09-29 23:26) [4]

все тема закрыта, неправильно подсчитывал кол - во вершин из за этого и баг лез.


 
@!!ex ©   (2006-09-30 10:08) [5]


> Ford ©   (29.09.06 23:26) [4]
> все тема закрыта, неправильно подсчитывал кол - во вершин
> из за этого и баг лез.


Вот поэтому я и говорил, что нужен код. :)


 
Cash ©   (2006-09-30 12:26) [6]

256 VB - это монстер! За что так бедный девайс нагружать???
Э-э-э-э, а меши в эти 256 входят? Если нет, то - Монстер!


 
@!!ex ©   (2006-09-30 12:43) [7]

Может просто для каждой точки поверхности свой ВБ? :)


 
Cash ©   (2006-09-30 14:43) [8]

256 VB - этож какое падение производительности!!!
Они наверняк еще в управляемом пуле создаются.
Это же ваще... нет, так самураи не кодят! :)
Хуч ба объяснил, зачем столько...


 
XProger ©   (2006-09-30 14:58) [9]

Cash, с каких пор переключение буферов стало накладной операцией?
Верно, такие самураи как ты вообще не кодят ;)


 
Ford ©   (2006-10-02 08:27) [10]

я через octree, и тоже думаю пора сокращать vb



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.053 c
15-1186930128
Dimka Maslov
2007-08-12 18:48
2007.09.09
Вот интересно почему


15-1186660790
ferr
2007-08-09 15:59
2007.09.09
Жесть =)


2-1186652202
shtam
2007-08-09 13:36
2007.09.09
chm


2-1187164880
VitV
2007-08-15 12:01
2007.09.09
перевод строки в ip.


2-1187067945
term77
2007-08-14 09:05
2007.09.09
ADOCommand, Acess





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский