' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' Qd3dface ****** QD3DFACE Component ****** QD3DFace implements IDirect3DRMFace. QD3DFace Properties Field Type R/W Default =================== =================== =================== =================== VertexCount INTEGER R QD3DFace Methods Method Type Description Params =================== =================== =================== =================== AddVertex SUB (X#, Y#, Z#) Add a vertex 3 GetVertex SUB (Index AS LONG, Retrieve the Position AS position and normal 3 QD3DVector, Normal of a vertex AS QD3DVector) SetColorRGB SUB (R#, G#, B#) Set face color 3 QD3DFace Events Event Type Occurs when... Params =================== =================== =================== =================== QD3DFace Examples ' Direct 3D construction using Faces $TYPECHECK ON CONST alClient = 5 '-- Light Types CONST D3DRMLIGHT_AMBIENT = 0 CONST D3DRMLIGHT_POINT = 1 CONST D3DRMLIGHT_SPOT = 2 CONST D3DRMLIGHT_DIRECTIONAL = 3 CONST D3DRMLIGHT_PARALLELPOINT = 4 '-- Renderer modes CONST D3DRMRENDERMODE_BLENDEDTRANSPARENCY = 1 CONST D3DRMRENDERMODE_SORTEDTRANSPARENCY = 2 CONST D3DRMRENDERMODE_LIGHTINMODELSPACE = 8 CONST D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR = 16 CONST D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE = 32 DECLARE SUB DXInitialize(Sender AS QDXScreen) DECLARE SUB DXInitializeSurface(Sender AS QDXScreen) DECLARE SUB DXTimerExpired DIM DXTimer AS QDXTimer DXTimer.Enabled = 1 DXTimer.Interval = 0 DXTimer.Activeonly = 0 DXTimer.OnTimer = DXTimerExpired DIM MeshBuilder AS QD3DMeshBuilder DIM MeshFrame AS QD3DFrame CREATE Form AS QForm Caption = "Direct 3D Example" Width = 640 Height = 480 Center CREATE DXScreen AS QDXScreen Init(640,480) Align = alClient BitCount = 16 Use3D = 1 UseHardware = 0 '' This is for non-3D accelerated video cards. '' 3D will be emulated using software, which '' is much slower. OnInitialize = DXInitialize OnInitializeSurface = DXInitializeSurface END CREATE ShowModal END CREATE SUB DXInitialize(Sender AS QDXScreen) DIM Light AS QD3DLight, Ambient AS QD3DLight DIM LightFrame AS QD3DFrame DIM Face AS QD3DFace DXScreen.CreateFrame(LightFrame) DXScreen.CreateFrame(MeshFrame) DXScreen.CreateLightRGB(D3DRMLIGHT_DIRECTIONAL, 0.9, 0.9, 0.9, Light) LightFrame.AddLight(Light) DXScreen.CreateLightRGB(D3DRMLIGHT_AMBIENT, 0.6, 0.6, 0.6, Ambient) DXScreen.AddLight(Ambient) LightFrame.SetPosition(2, 0, 22) DXScreen.SetCameraPosition(-5, 10, 0) MeshFrame.AddLight(Ambient) MeshFrame.SetPosition(0, 0, 0) MeshFrame.SetRotation(0, 0, 0, 0.05) ' Angle of rotation = 0.05 DXScreen.CreateMeshBuilder(MeshBuilder) DXScreen.CreateFace(Face) Face.AddVertex(0.996094,1.000000,-0.995850) Face.AddVertex(-0.995850,1.000000,-0.995850) Face.AddVertex(-0.995850,1.000000,0.996094) Face.AddVertex(0.996094,1.000000,0.996094) Face.AddVertex(0.996094,-0.999756,-0.995850) Face.AddVertex(-0.995850,-0.999756,-0.995850) Face.AddVertex(-0.995850,-0.999756,0.996094) Face.AddVertex(0.996094,-0.999756,0.996094) MeshBuilder.AddFace(Face) MeshBuilder.Scale(2,2,2) MeshBuilder.SetRGB(1, 1, .7) MeshFrame.AddVisual(MeshBuilder) DXScreen.CameraLookAt(MeshFrame, 1) END SUB SUB DXInitializeSurface(Sender AS QDXScreen) DXScreen.SetRenderMode(D3DRMRENDERMODE_BLENDEDTRANSPARENCY OR D3DRMRENDERMODE_SORTEDTRANSPARENCY) END SUB SUB DXTimerExpired DXScreen.ForceUpdate(0,0,50,40) ' Update FPS text only DXScreen.Move(1) ' This does the rotation by 2 times DXScreen.Render DXScreen.TextOut(10,10,"FPS: "+STR$(DXTimer.FrameRate), &HFFFFFF, -1) DXScreen.Flip END SUB ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb