游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3181|回复: 9

GetTransform出错, 郁闷ING,请教一下:(

[复制链接]

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
发表于 2007-8-18 21:22:00 | 显示全部楼层 |阅读模式
我在做视锥裁剪的时候,需要得到平截头在世界坐标系下的6个PLANE方程,就先得得到一个变换矩阵来还原,而得到的这个矩阵的时候就出现问题了,请看看小弟是这么做的:
//m_pDevice 类内部的设备指针,构造传进去的
//原理是根据得到 投影矩阵 和 视图矩阵 然后相乘 取逆,最后得到该变换矩阵T
D3DXMATRIX T, view, proj;
         
        m_pDevice->GetTransform(D3DTS_VIEW,&view);
        m_pDevice->GetTransform(D3DTS_PROJECTION,&proj);

        T = view * proj;
        D3DXMatrixInverse(&T, NULL, &T);

问题是:
程序运行到
m_pDevice->GetTransform(D3DTS_VIEW,&view);
就中断 发生什么访问冲突,请问我哪没做对,或者是哪没考虑到了,想了一下午+一晚上了,在线等啊,麻烦帮忙下啊。

1

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2007-8-18 21:40:00 | 显示全部楼层

Re:GetTransform出错, 郁闷ING,请教一下:(

检查一下,你初始化D3DDEVICE的时候是不是设置了D3DCREATE_PUREDEVICE,如果设置了,就不能使用GetTransform之类的函数了.

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2007-8-18 21:55:00 | 显示全部楼层

Re: GetTransform出错, 郁闷ING,请教一下:(


LPDIRECT3D9 g_pD3D = NULL;                   //接口指针
LPDIRECT3DDEVICE9 g_pD3DDevice = NULL;        //设备指针
g_pD3D = Direct3DCreate9(D3D_SDK_VERSION);


        //创建显示设备的显示模式
        D3DDISPLAYMODE d3ddm;
        g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm);


        //创建变量存储设备信息
        D3DPRESENT_PARAMETERS d3dpp;
        ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));

        d3dpp.BackBufferWidth         = d3ddm.Width;
        d3dpp.BackBufferHeight = d3ddm.Height;
        d3dpp.BackBufferFormat = d3ddm.Format;
        d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
        d3dpp.Windowed = true;
        d3dpp.EnableAutoDepthStencil         = true;
        d3dpp.AutoDepthStencilFormat         = D3DFMT_D16;
        //创建设备
        g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,
                D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &g_pD3DDevice);
========================================================================
应该没问题吧,水兄,就这么简单的创建了的

1

主题

149

帖子

149

积分

注册会员

Rank: 2

积分
149
QQ
发表于 2007-8-18 22:05:00 | 显示全部楼层

Re:GetTransform出错, 郁闷ING,请教一下:(

难道m_pDevice为0?
另外,你看看输出,看看它说了什么.

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2007-8-18 22:36:00 | 显示全部楼层

Re: GetTransform出错, 郁闷ING,请教一下:(

我晕死了, 我在这个类构造函数里面检测m_pdevice都是有值的;
然后在一个类内的函数调他的时候 跟我来个
CXX0030错误:无法计算表达式的值
WHIS IS WHY?

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2007-8-18 22:41:00 | 显示全部楼层

Re:GetTransform出错, 郁闷ING,请教一下:(

我又在GetTransform前面插了句:
LPDIRECT3DDEVICE9 p = NULL;
        p = m_pDevice;
运行到第2句的时候中断;
我晕,这个不可能吧 ,这么赋值怎么也不会错吧;

7

主题

57

帖子

57

积分

注册会员

Rank: 2

积分
57
发表于 2007-8-18 22:52:00 | 显示全部楼层

Re:GetTransform出错, 郁闷ING,请教一下:(

D3DXMATRIX T, view, proj;
看看你写的这句!

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-8-19 03:27:00 | 显示全部楼层

Re:GetTransform出错, 郁闷ING,请教一下:(

你为什么不断点到m_pDevice这里看看?

25

主题

82

帖子

82

积分

注册会员

Rank: 2

积分
82
 楼主| 发表于 2007-8-19 13:39:00 | 显示全部楼层

Re: GetTransform出错, 郁闷ING,请教一下:(

不用加断点, 到那个地方自动中断

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-8-19 18:03:00 | 显示全部楼层

Re:GetTransform出错, 郁闷ING,请教一下:(

加断点到那儿又不会立即执行,就是看调用那句之前的情况。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 10:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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