游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1835|回复: 3

一点关于摄像机的问题

[复制链接]

16

主题

59

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2009-12-7 22:06:00 | 显示全部楼层 |阅读模式
试图把摄像机单独弄成一个类 感觉应该挺简单 但是写完后遇到一个很诡异的问题
void MyCamera::SetupCamera(){

        D3DXMATRIX View;
        D3DXMatrixLookAtLH(&mView, &mPosition, &mLookat, &mUp);
        View = mView;
        mDevice->SetTransform(D3DTS_VIEW, &View);
}
void MyCamera::SetupPerspective(){

        D3DXMATRIX projection;
        D3DXMatrixPerspectiveFovLH(&mProj,mFov, mHeight/mWidth,mZnear,mZfar);
        projection = mProj;
        mDevice->SetTransform(D3DTS_PROJECTION, &projection);
}

void MyCamera::Setup(){
        this->SetupCamera();
        this->SetupPerspective();
}
效果是黑屏

void MyCamera::Setup(){
D3DXMATRIX View;
D3DXVECTOR3 cameraPos(12.0f, 12.0f, -12.0f);
D3DXVECTOR3 cameraLookAt(0.0f, 0.0f, 0.0f);
D3DXVECTOR3 upVector(0.0f, 1.0f, 0.0f);

D3DXMatrixLookAtLH(&View, &cameraPos, &cameraLookAt, &upVector);
mDevice->SetTransform(D3DTS_VIEW, &View);

D3DXMATRIX projection;
D3DXMatrixPerspectiveFovLH(&projection,D3DX_PI * 0.5f, 8/6,1.0f,1000.0f);
mDevice->SetTransform(D3DTS_PROJECTION, &projection);
}
效果正确

参数数值检查过也没什么区别 为什么会有这种效果

3

主题

53

帖子

104

积分

注册会员

Rank: 2

积分
104
发表于 2009-12-8 16:53:00 | 显示全部楼层

Re:一点关于摄像机的问题

D3DXMatrixPerspectiveFovLH(&mProj,mFov, mHeight/mWidth,mZnear,mZfar);
中应为mWidth/(float)mHeight, 否则为0

16

主题

59

帖子

59

积分

注册会员

Rank: 2

积分
59
 楼主| 发表于 2009-12-8 21:22:00 | 显示全部楼层

Re: 一点关于摄像机的问题

[em10]

16

主题

59

帖子

59

积分

注册会员

Rank: 2

积分
59
 楼主| 发表于 2009-12-8 21:22:00 | 显示全部楼层

Re:一点关于摄像机的问题

原来是这错了 小事害死人啊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-18 00:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表