Skip to main content
GameDev.net gamedev.net
🔒 Locked 🎮 Unity

project and scale 3D object to 2d screen space

Started by hserver Nov 11, 2012 at 6:07 PM 1 replies 3.4k views
Original Post
hserver
hserver
Hi
I have a function that already project a 3d point into my screen whitch I want to share with you !


Public Function GetScreenCoordBy3DPoint(ByRef RetX As Single, ByRef RetY As Single, ByRef Px As Single, ByRef Py As Single, ByRef Pz As Single, ByRef RetdistZ As Single) As Object
Dim MatView As Matrix
Dim matProj As Matrix
Dim RetVec As Vector3
Dim Vec1 As Vector3
Vec1.X = Px
Vec1.Y = Py
Vec1.Z = Pz
Dim tViewPort As Direct3D.Viewport ' DxVBLibA.D3DVIEWPORT8
Dim IdentMat As Matrix
IdentMat = Matrix.Identity
MatView = D3DDevice9.GetTransform(Direct3D.TransformType.View)
matProj = D3DDevice9.GetTransform(Direct3D.TransformType.Projection)
'd3ddevice9.GetTransform D3DTS_WORLD, IdentMat
tViewPort = D3DDevice9.Viewport
RetVec = Vector3.Project(Vec1, tViewPort, matProj, MatView, IdentMat)
RetX = RetVec.X
RetY = RetVec.Y
RetdistZ = RetVec.Z
End Function

I want to render a 3d mesh and prevent its scaling when it go far from camera
any suggestion how should I scale it ??
----
sorry for bad EN
Radikalizm
Radikalizm
You're looking for an orthographic or orthogonal projection
An isometric projection would be a projection where a unit is of equal length for all three projected axes, and where the angle between two adjacent projected axes is exactly 120°.
I gets all your texture budgets!

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.