Тема: Xors3D
Показать сообщение отдельно
Старый 09.03.2009, 19:13   #115
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Xors3D

И ещё - работа с вершинныеми буферами в ксорсе - жесть.
Когда я програмно создавал меш на 20000 поликов, в ксорсе меш генерировался около 150 секунд. А когда я питался создать меш на 200000 поликов я:
1. запустил прогу
2. сходил в туалет.
3. поел
4. немного (минут 15) посмотрел телевизор
Вернулся, но ксорс так и не загрузился
Можете протестить, может это только у меня так...


Include "xors3d.bb"

xGraphics3d(800,600,32,0)


Global info1$="Flag demo"
Global info2$="Features mesh deformation"

Const segs=10000,width#=4,depth#=.125

mesh=xCreateMesh()
surf=xCreateSurface( mesh )

For k=0 To segs
x#=Float(k)*width/segs-width/2
u#=Float(k)/segs
xAddVertex surf,x,1,0,u,0
xAddVertex surf,x,-1,0,u,1
Next

For k=0 To segs-1
xAddTriangle surf,k*2,k*2+2,k*2+3
xAddTriangle surf,k*2,k*2+3,k*2+1
Next

b=xLoadBrush( "b3dlogo.jpg" )
xPaintSurface surf,b

camera=xCreateCamera()
xPositionEntity camera,0,0,-5

light=xCreateLight()
xTurnEntity light,45,45,0

While Not xKeyHit(1)

ph#=MilliSecs()/4
; cnt=xCountVertices(surf)-1
; For k=0 To cnt
; x#=xVertexX(surf,k)
; y#=xVertexY(surf,k)
; z#=Sin(ph+x*300)*depth
; xVertexCoords surf,k,x,y,z
; Next
; xUpdateNormals mesh

If xKeyDown(26) xTurnEntity camera,0,1,0
If xKeyDown(27) xTurnEntity camera,0,-1,0
If xKeyDown(30) xMoveEntity camera,0,0,.1
If xKeyDown(44) xMoveEntity camera,0,0,-.1

If xKeyDown(203) xTurnEntity mesh,0,1,0,True
If xKeyDown(205) xTurnEntity mesh,0,-1,0,True
If xKeyDown(200) xTurnEntity mesh,1,0,0,True
If xKeyDown(20 xTurnEntity mesh,-1,0,0,True

xUpdateWorld
xRenderWorld
xText 10,10,xGetFPS()
xFlip
Wend
End


Это я ещё закоментировал "развеивание" флага. Про него я вообще молчу...

ЗЫ: В блице создание 20000 проходит почти мгновенно, 200000 он не тянет(индекный буфер не позволяет). Мой движок создаёт 200000 за 1-2 сек. 2000000 - за 8-10 сек.


ЗЗЫ: При этом всё, флаг в ксорсе ещё и не отображается, если не крутить.
Я работу с вершинами сделал коряво даж очень поэтому медленно так. мож на днях займусь этим...
если настроение будет.
кстати у кого-то там на интеле встроенном глючило-есть такая фигня. тупо вешаем вершинный шейдер и все ок, видать какой-то рендер стейт глючит, но разобраться как обычно лень
(Offline)
 
Ответить с цитированием