D3D正交投影与透视投影放大mesh的方法

本文介绍了如何在Directx的3D环境中,通过鼠标滚轮事件实现正交投影和透视投影下mesh的放大操作。通过调整viewWidth和viewHeight实现正交投影的缩放,并使用Matrix.OrthoLH更新投影矩阵。对于透视投影,通过改变相机位置实现放大效果,但代码未在本次事件中执行。
摘要由CSDN通过智能技术生成
    Private viewWidth As Single = 2
    Private viewHeight As Single = 2
    Private Sub View3D_MouseWheel(sender As Object, e As MouseEventArgs) Handles Me.MouseWheel
        Dim s As Single = -CSng(e.Delta) / 2000
        viewWidth += s
        viewHeight += s
        If viewWidth <= 0 Or viewHeight <= 0 Then
            Exit Sub
        End If
        device.Transform.Projection = Matrix.OrthoLH(viewWidth, viewHeight, 0, 100)


        ''下面适用于透视投影
        'Dim scaleFactor As Single = -CSng(e.Delta) / 2000 + 1.0F
        'CamPostion.Subtract(CamTarget)
        'CamPostion.Scale(scaleFactor)
        'CamPostion.Add(CamTarget)
        'Dim viewMatrix As Matrix = Matrix.LookAtLH(CamPostion, CamTarget, New Vector3(0, 1, 0))
        'device.Transform.View = viewMatrix
    End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值