游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3626|回复: 5

c# Direct3D9 编程(1)

[复制链接]

8

主题

28

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2004-8-25 22:47:00 | 显示全部楼层 |阅读模式
初学乍练,高手不要见笑。

sf_200482522478.rar

8.66 KB, 下载次数:

2

主题

11

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2004-8-26 07:10:00 | 显示全部楼层

Re: c# Direct3D9 编程(1)

好象抄Managed directx 9 by tom miller.
而且你那个源程是不完整的,抄C#.net的,它里面还有
很多隐藏的代码,你只列出了一部分

8

主题

28

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2004-8-26 09:06:00 | 显示全部楼层

Re: c# Direct3D9 编程(1)

我正在看这个文档,确实有很多内容从这里来的。
主要针对对D3D一窍不通的人,我就是,呵呵。
针对我学习过程中的一些疑惑/挫折,有些地方有些扩充,来自其他资料。

代码确实不全,我用的是VS。NET 2005 beta1。其他的代码都是自动生成的,没有什么看的价值。如果有需要我可以把整个工程打包。

8

主题

28

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2004-8-26 12:25:00 | 显示全部楼层

Re: c# Direct3D9 编程(1)

这里有两个问题不太明白,还请高手指教。
1、在Paint事件中调用Invalidate()函数,为什么会导致我们绘制的东西被覆盖掉。这里的内部机制是什么样的。

2、在缺省的情况下,文档中的例子中,坐标系是什么样的。坐标原点在那里?根据例子的运行情况推断,好像使用的是普通的窗口坐标系,
左上角是原点,Y轴向下。

8

主题

28

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2004-8-26 12:34:00 | 显示全部楼层

Re: c# Direct3D9 编程(1)

代码里还隐藏着一些内容。

比如说顶点数据的格式(TransformedColored),这涉及一个Flexible Vertex Format (FVF)   (灵活顶点格式)的内容。CustomVertex类把一些常用的顶点格式作了归纳。

SwapEffect.Discard,涉及到了,Swap Chain(也就是Back/Front Buffer)的概念。

device.Clear中的ClearFlag涉及到了Z-Buffer,Stencil-Buffer,Back&Front Buffer的概念。(我们要绘制的3D物体信息主要存放于这些
Buffer 中)

8

主题

28

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2004-8-26 12:43:00 | 显示全部楼层

Re: c# Direct3D9 编程(1)

关于例子中的坐标系的问题已经确认了,就是屏幕坐标系,因为我们使用的顶点格式是TransformedColored。

我们从此可以了解,不论我们对我们的3D物体做出世界变换,视图变换,投射变换,最终,Direct3d都要还要做一次影射,把这些3D物体的坐标从左手3D笛卡尔坐标系,影射到2D的屏幕坐标系上去。

TransformedColored格式,就是告诉了Direct3D,我们的坐标值已经是屏幕坐标系了,你不用操心了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-17 17:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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