'3D scene rendering class
called "Render" in vbscript, and VB_Render in our API
'simple Rasterizer that supports rendering of geometry instances of OBJ files created in a 3D program, such as Maya, Blender, Lightwave, etc.
'it is very easy to use.
'Geometry should have vertice texture coordinates (UVs), and consist of triangles only.
'we create a simple projection coordinates if no texture coordinates exist in the file.
'The idea of the scene render class is that we load geometry, and paint instances of that geometry onto the Howler canvass.
'this class does not keep track of any state information like position, scale or rotation. You tell it where to paint instances, and you can keep track of that information any way you want.
'below are the various members of this class
'LoadGeometry
'BegenRender/EndRender
'RenderInstance
'Camera
'Light
The workflow consists of loading geometry, then calling BeginRender, then rendering instances of the loaded geometry, then EndRender, and refreshing the screen so the user can see it. You can place the camera. There is only one camera. You can also add lights. There are more than one lights. Fog can also be set.
Reference:
Public Sub Dispose_Goemetry()
Public Sub Dispose_Drawing()
Public Function LoadGeometry(ByVal FileName As String) As Long
'returns the object global index
'returns -1 if fail
Public Sub BeginRender(Optional ByVal hdc As Long)
'setup vbdrawing class to render.
Public Sub EndRender()
Public Sub RenderInstance(ByVal index, ByVal x As Single, ByVal y As Single, ByVal z As Single, ByVal sx As Single, ByVal sy As Single, ByVal sz As Single, ByVal rx As Single, ByVal ry As Single, ByVal rz As Single)
'0 rendered
'1 wireframe
'place the camera
Public Sub Camera(ByVal x As Single, ByVal y As Single, ByVal z As Single, ByVal rx As Single, ByVal ry As Single, ByVal rz As Single, ByVal zoom As Single)
'place a new instance of a light.
Public Sub Light(ByVal r As Single, ByVal g As Single, ByVal b As Single, ByVal intensity As Single, ByVal x As Single, ByVal y As Single, ByVal z As Single)
'return index of light
public sub fog(ByVal r As Single, g As Single, b As Single, ByVal level As Single)