forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   помогите в Разборке кода (http://forum.boolean.name/showthread.php?t=1909)

Horror 13.11.2006 21:48

помогите в Разборке кода
 
Всем привет!
есть такой код:(см ниже)
немогу понять как сделать чтобы меш растягивался по GraphicsWidth() и занимал 1\3GraphicsHeight()
где ето вообше в коде?
[blitz]Global panelcamera3d
Global panelpivot3d
Global panelentity3d,paneltexture3d

Function Init3Dpanel(file$,flags=1+2+16+32,order=-99,x#=10000,y#=10000,z#=1)

Clear3Dpanel()

panelcamera3d=CreateCamera()

PositionEntity panelcamera3d,x,y,z

CameraClsMode panelcamera3d,0,1
CameraRange panelcamera3d,1,2

EntityOrder panelcamera3d,order

panelpivot3d=CreatePivot(panelcamera3d)
PositionEntity panelpivot3d,-1,Float(GraphicsHeight())/GraphicsWidth(),1
;scale#=2.0/GraphicsWidth()

ScaleEntity panelpivot3d,1.0/GraphicsWidth(),-1.0/GraphicsWidth(),1

paneltexture3d=LoadTexture(file$,flags)
panelentity3d=CreateMesh(panelpivot3d)

EntityFX panelentity3d,1+8

surf=CreateSurface(panelentity3d)
w#=Float(TextureWidth(paneltexture3d))
h#=Float(TextureHeight(paneltexture3d))

v=AddVertex(surf,0,0,0 ,0,0)
AddVertex(surf,w,0,0 ,1,0)
AddVertex(surf,w,h,0 ,1,1)
AddVertex(surf,0,h,0 ,0,1)
AddTriangle(surf,v,v+1,v+2)
AddTriangle(surf,v,v+2,v+3)
EntityTexture panelentity3d,paneltexture3d

End Function


Function Clear3Dpanel()

If paneltexture3d<>0 Then FreeTexture paneltexture3d: paneltexture3d=0
If panelentity3d<>0 Then FreeEntity panelentity3d: panelentity3d=0
If panelpivot3d<>0 Then FreeEntity panelpivot3d: panelpivot3d=0
If panelcamera3d<>0 Then FreeEntity panelcamera3d: panelcamera3d=0

End Function


Function Draw3Dpanel(x,y,z)

PositionEntity panelentity3d,x,y,z[/blitz]

пс чтобы проверить работоспособность кода
[blitz]Init3DPanel("текстура меша.png")[/blitz]
и в мэине:
[blitz]Draw3DPanel(X,Y))[/blitz]

Diplomat 14.11.2006 23:43

Re: помогите в Разборке кода
 
Головной пост поправил по заветам Джимона, флуд снёс.

2 Horror : Исходя из специфики ситуации (классические разрешения экрана 4х3, вьюпорт под размер экрана, зуум камеры 1) , достаточной мерой будет следующая:
[blitz]
;PositionEntity Cam,0,0,0
;RotateEntity Cam,0,0,0

Panel3D=CreateSprite()
PositionEntity Panel3D,0,0,1
ScaleSprite Panel3D,1,0.25 ;0.25 = 0.33Вьюпорта х СоотношениеСторонВьюпорта0.75
EntityParent Panel3D,Cam
[/blitz]
Сможешь усложнить код под более широкий диапазон ситуаций? ;)


Часовой пояс GMT +4, время: 01:43.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot