project and scale 3D object to 2d screen space

Started by
1 comment, last by Radikalizm 11 years, 5 months ago
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
Advertisement
Aren't you looking for an isometric transformation?
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!

This topic is closed to new replies.

Advertisement