ToxicWaste55 Posted July 30, 2007 Share Posted July 30, 2007 Hey'ya Everybodyi found some basic formulas for doing basic 3D rendering. It is really hard to do much else other than plotting points, but it works. One of my current missions is to figure out rotation and clipping path. Eventually I will be able to make solid object like cubes rotate and fly around the screen.Maybe one day, in a galaxy far, far away, AutoIT will have DirectX Support. Then my mission will be completed. But, I'll settle for DirectDraw...Anyway here's the basic Algorithm:func Calc_3D($x,$y,$z) Local $d local $return[3] $x = $x - $pan[0] $y = $y - $pan[1] $z = $z - $pan[2] $x = $Window[0]*$x/($z) $y = $Window[1]*$y/($z) if $z < $pan[2] then ;if in front of you $return[0] = $x + .5 * $Window[0] ;$window[0] is the horizontal size of the draw field $return[1] = $y + .5 * $Window[1] ;$window[1] is the vertical $return[2] = $d ;distance, used in program specific times, like distance shading or diameter shrinkage. Else ;if behind you $return[0] = 0 $return[1] = 0 $return[2] = -100000 EndIf Return $return EndFuncThe returned data is the absolute pixel positions used in GUICtrlSetGraphic's x & y parameters.$return[0] is the x[1] is the y[2] is the distance from youThat is a tried and true method. It uses a one point perspective. Another one I am working on uses three point perspective.I was going to post it but appears as if i lost the code somewhere...maybe i'll post it as an edit...anyway check out my rendering example (i have more advanced ones that I might share later by the way)3D_Example.au3 Link to comment Share on other sites More sharing options...
Zedna Posted August 3, 2007 Share Posted August 3, 2007 Look at OpenGl Plugin Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now