Вниз
Скачать: CL | DM;

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

 
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.076 c
2-1187083802
programmist87
2007-08-14 13:30
2007.09.09
Как записать текст в файл?


15-1186726846
stanislav
2007-08-10 10:20
2007.09.09
Вопрос по CVS


2-1186691643
Ruffian
2007-08-10 00:34
2007.09.09
Прослушивание порта..


3-1178986882
olevacho_
2007-05-12 20:21
2007.09.09
Узнать дату на сервере


15-1186739819
Jeer
2007-08-10 13:56
2007.09.09
Старые песни




   Наверх