jojoofu,
Ok, figured what was happening. First, in order to draw 3D objects over Sprites, you must call the DrawSpritesFirst.
You also must call the BackdropOff function for your camera which prevents the sprite layer from being wiped by the backdrop flood.
This example here I've posted can be run by creating a default DarkGDK.NET project, (reset your three references) and run the program. It will render a cube with the standard GDK texture with the same image being rendered as a sprite in the top left corner. The sprite should appear behind the cube.
' DarkGDK.NET Startup project
'
Imports DarkGDK
Imports DarkGDK.Camera
''' <summary>
''' Our main application class
''' </summary>
''' <remarks></remarks>
Public Class Application
''' <summary>
''' This is our main Game Loop. This subroutine is used for processing our
''' game events and processes during the lifetime of the application. The
''' subroutine will loop until LoopGDK returns false.
''' </summary>
''' <remarks></remarks>
Public Shared Sub GameLoop()
Dim cube As DarkGDK.Basic3D.Cube
Dim texture As DarkGDK.Basic2D.Image
Dim sprite As DarkGDK.Basic2D.Sprite
' First we will instruct our camera to have a specific background colour
DarkGDK.Camera.DefaultCamera.ColorBackdrop(Color.BlueViolet)
' Call this function to prevent the backdrop and 3D engine from overwriting the
' Sprite layer
DarkGDK.Camera.DefaultCamera.BackdropOff()
' Instruct DarkGDK.NET to stop automatically positioning and
' angling the camera every time a new object is created.
DarkGDK.Camera.DefaultCamera.AutoCamOff()
' Place the camera just infront of where our cube will first appear
DarkGDK.Camera.DefaultCamera.PositionCurrent(0, 0, -20)
' Tell the camera to point towards the centre of our virtual universe
DarkGDK.Camera.DefaultCamera.PointCurrent(0, 0, 0)
' Create and load a texture into memory which will be used
' to texture the cube
texture = New DarkGDK.Basic2D.Image(New DarkGDK.ResourceAssembly(), "OverlaySprite.gdk.png")
' Create a cube, 10x10x10 units in size, and wrap the texture
' onto the cube
cube = New DarkGDK.Basic3D.Cube(10, texture)
' Cause the sprite layer to be drawn first before rendering the 3D scene
DarkGDK.Core.DrawSpritesFirst()
' Create a sprite in the left corner using the same image as the texture
sprite = New DarkGDK.Basic2D.Sprite(20, 20, texture)
'
' Loop continuously until StopGDKLoop is called, or the ESC key is pressed.
'
While DarkGDK.Engine.LoopGDK()
' Rotate our cube along it's Y axis
DarkGDK.Camera.DefaultCamera.ControlDefaultUsingArrowKeys(1, 1)
' Also, rotate our cube on all three axi
cube.Rotate(DarkGDK.IO.Mouse.X, 0, DarkGDK.IO.Mouse.Y)
' Tell DarkGDK.NET to render our default camera display
DarkGDK.Core.Sync()
End While
End Sub
End Class