3D rotation in canvas possible?

BlitzMax Forums/MaxGUI Module/3D rotation in canvas possible?

Grisu(Posted 2006) [#1]
Hi all!

In my app I'm using a small canvas to display my software logo. I was wondering if it is possible to rotate/turn the logo itself (not the text) slowly in true 3D?

Is it possible to do under DX as well as opengl.
Or is it wise just to take one road?

There is a 3D bmx cube example, but I have no idea how to adopt it according to my needs.

I'm a complete newbie in terms of 3D coding, so don't laugh at me... ;))))

Image:


Basic Code:
SuperStrict 

Global AboutWindow:TGadget=CreateWindow(" Info", (GadgetWidth (Desktop ())-393)/2,(GadgetHeight(Desktop ())-273)/2,393,273,Null,WINDOW_TITLEBAR | WINDOW_CLIENTCOORDS)
Global AboutCanvas:TGadget=CreateCanvas(3,3,200,267,AboutWindow)
Global MutantIMG:TImage=LoadImage("mutant.jpg")

Global ScrollTimer :TTimer=CreateTimer(27)   ' Timer for animation speed
Redraw_Logo()

While True
	WaitEvent() 
 	
	Select EventID()

    Case EVENT_TIMERTICK

    Select EventSource()
           Case ScrollTimer
                Redraw_Logo()
    End Select 


	Case EVENT_WINDOWCLOSE
			End
	End Select
Wend

Function Redraw_Logo()
	SetGraphics CanvasGraphics (AboutCanvas) 
	SetColor 0,0,0
	Cls
	SetColor 255,255,255
	DrawImage MutantIMG, 0,0
	Flip 0
End Function 


Grisu


ImaginaryHuman(Posted 2006) [#2]
Just put SetRotation in there before you DrawImage. You can do anything that Max2D can do, on the canvas.


Grisu(Posted 2006) [#3]
That's not real 3D. ;)

I want to put the logo on a domino cube and turn it sideways.
So that u only see a "|" when it's in the middle of the animation.


degac(Posted 2006) [#4]
I think you need some 'basic' 3d engine, it's no so easy. Maybe (for OpenGL only) you can check the ne-he tutorial, there should be something that you can use.
I'm sorry, but I dont' know too much about 3d-math&co


D4NM4N(Posted 2006) [#5]
isnt there a rotating 3dgl teapot demo?


Dreamora(Posted 2006) [#6]
There is even MiniB3D basing on OpenGL which lets you do all this basic Blitz3D stuff without the need to reinvent the wheel :)


ImaginaryHuman(Posted 2006) [#7]
set the matrix to the modelview matrix and set the rotation
in gl or dx


Grisu(Posted 2006) [#8]
AngelDaniel, are you speaking of MiniB3D?


Dreamora(Posted 2006) [#9]
He is speaking of plain API.
Just transform the sprite accordingly (ie change the modelview matrix) so it changes in 3D instead of 2D only (which is all Max2D supports as it is 2D :) )


Grisu(Posted 2006) [#10]
Plain API, urgs.

Cross platform would be nice and this is impossible with windows API instructions.