找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
楼主: 0xAA55

【3D】用VB教你最基础的3D图形知识

  [复制链接]

0

主题

3

回帖

28

积分

用户组: 初·技术宅

UID
1529
精华
0
威望
1 点
宅币
23 个
贡献
0 次
宅之契约
0 份
在线时间
3 小时
注册时间
2016-3-1
发表于 2016-3-2 00:31:04 | 显示全部楼层
楼主,请教个问题,观察矩阵是不是包含摄像机的坐标? 为什么我通过pDevice->GetTransform(D3DTS_VIEW, &view);,得到的矩阵都是1和0
回复 赞! 靠!

使用道具 举报

1111

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24235 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
 楼主| 发表于 2016-3-2 11:22:05 | 显示全部楼层
whm630987633 发表于 2016-3-2 00:31
楼主,请教个问题,观察矩阵是不是包含摄像机的坐标? 为什么我通过pDevice->GetTransform(D3DTS_VIEW, &vi ...

是的。但是这是摄像机的坐标和旋转的逆矩阵。
回复 赞! 靠!

使用道具 举报

0

主题

3

回帖

28

积分

用户组: 初·技术宅

UID
1529
精华
0
威望
1 点
宅币
23 个
贡献
0 次
宅之契约
0 份
在线时间
3 小时
注册时间
2016-3-1
发表于 2016-3-6 13:18:48 | 显示全部楼层
本帖最后由 whm630987633 于 2016-3-6 13:36 编辑
0xAA55 发表于 2016-3-2 11:22
是的。但是这是摄像机的坐标和旋转的逆矩阵。


楼主,我在编写一个游戏插件,在3D游戏人物旁边显示血条,但是我现在拿到了人物的坐标,要把他的坐标转换到屏幕坐标。
bool WorldToScreen(LPDIRECT3DDEVICE9 pDevice, D3DXVECTOR3 *InOut)
{
        D3DXVECTOR3 vScreen;
        D3DXVECTOR3 PlayerPos(InOut->x, InOut->y, InOut->z);
        D3DVIEWPORT9 viewPort = { 0 };
        D3DXMATRIX projection, view, world;
        pDevice->GetTransform(D3DTS_VIEW, &view);
        pDevice->GetTransform(D3DTS_PROJECTION, &projection);
        pDevice->GetTransform(D3DTS_WORLD, &world);
        pDevice->GetViewport(&viewPort);
        D3DXVec3Project(&vScreen, &PlayerPos, &viewPort, &projection, &view, &world);
        if (vScreen.z < 1.0f && vScreen.x > 0.0f && vScreen.y > 0.0f && vScreen.x < viewPort.Width && vScreen.y < viewPort.Height)
        {
                *InOut = vScreen;
                return true;
        }
        return false;
}
这是我的方法,但是转换出来的坐标总是不对,我提供一个0,0,0的坐标,他转换出来有好几千大的数字。

我刚上高中,C和数学学的都很吃力,最近在啃2本书,看了楼主的教程很有收获,但是实际操作上面又无从入手。
将这个顶点的X、Y值除以这个顶点的Z值,得到的X、Y对应屏幕上的坐标是[-1,1]区间的(超出屏幕范围的可能超过这个区间)然后把它的值变换到[0,1]区间并乘以你屏幕的分辨率(注意把Y的值从[-1,1]换到[0,1]区间的时候Y值要取负)。得到的值就是这个顶点在屏幕中的坐标。怎么样?是不是发现异常简单?
这句话有点不理解,之前看了几篇关于坐标转换的文章, 360截图20160306133422260.jpg ,感觉楼主讲的和这个很类似,但是又理解不了。
1.png
回复 赞! 靠!

使用道具 举报

0

主题

3

回帖

21

积分

用户组: 初·技术宅

UID
1546
精华
0
威望
0 点
宅币
18 个
贡献
0 次
宅之契约
0 份
在线时间
3 小时
注册时间
2016-3-8
发表于 2016-3-8 05:19:42 | 显示全部楼层
看看学习下
回复 赞! 靠!

使用道具 举报

1111

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24235 个
贡献
46222 次
宅之契约
0 份
在线时间
2296 小时
注册时间
2014-1-26
 楼主| 发表于 2016-3-8 18:48:48 | 显示全部楼层
whm630987633 发表于 2016-3-6 13:18
楼主,我在编写一个游戏插件,在3D游戏人物旁边显示血条,但是我现在拿到了人物的坐标,要把他的坐标转换 ...

刚上高中啊,不错。
我是在高二的时候开始研究3D图形学的。
回复 赞! 靠!

使用道具 举报

0

主题

2

回帖

19

积分

用户组: 初·技术宅

UID
1715
精华
0
威望
2 点
宅币
13 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2016-5-24
发表于 2016-5-25 20:27:23 | 显示全部楼层
学习~ 学习~
回复 赞! 靠!

使用道具 举报

2

主题

10

回帖

5130

积分

用户组: 技术宅的结界VIP成员

UID
94
精华
1
威望
3 点
宅币
5097 个
贡献
10 次
宅之契约
0 份
在线时间
12 小时
注册时间
2014-2-28
发表于 2017-3-8 10:07:32 | 显示全部楼层
看一看线代
回复 赞! 靠!

使用道具 举报

1

主题

2

回帖

15

积分

用户组: 初·技术宅

UID
2345
精华
0
威望
0 点
宅币
12 个
贡献
0 次
宅之契约
0 份
在线时间
1 小时
注册时间
2017-3-23
发表于 2017-3-23 09:42:12 | 显示全部楼层
看看!!!!!
回复

使用道具 举报

0

主题

29

回帖

98

积分

用户组: 小·技术宅

UID
294
精华
0
威望
2 点
宅币
65 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2014-5-16
发表于 2017-4-24 14:18:23 | 显示全部楼层
学习学习 看看
回复 赞! 靠!

使用道具 举报

0

主题

4

回帖

22

积分

用户组: 初·技术宅

UID
2470
精华
0
威望
1 点
宅币
16 个
贡献
0 次
宅之契约
0 份
在线时间
4 小时
注册时间
2017-5-5
发表于 2017-5-5 22:10:35 | 显示全部楼层
查看源码,学习学习!
回复 赞! 靠!

使用道具 举报

0

主题

1

回帖

9

积分

用户组: 初·技术宅

UID
2520
精华
0
威望
0 点
宅币
8 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2017-5-19
发表于 2017-5-19 09:27:49 | 显示全部楼层
完全是膜拜在
回复 赞! 靠!

使用道具 举报

0

主题

1

回帖

8

积分

用户组: 初·技术宅

UID
2594
精华
0
威望
1 点
宅币
5 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2017-6-13
发表于 2017-6-13 15:13:16 | 显示全部楼层
果然还是对 数学有一定要求
回复 赞! 靠!

使用道具 举报

0

主题

1

回帖

12

积分

用户组: 初·技术宅

UID
2718
精华
0
威望
1 点
宅币
9 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2017-7-23
发表于 2017-7-24 02:17:52 | 显示全部楼层
虚心学习
回复

使用道具 举报

0

主题

15

回帖

27

积分

用户组: 初·技术宅

UID
2664
精华
0
威望
0 点
宅币
12 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2017-7-8
发表于 2017-7-24 05:36:51 | 显示全部楼层
先加复一下看看下载的东西.
回复 赞! 靠!

使用道具 举报

1

主题

14

回帖

15

积分

用户组: 初·技术宅

UID
2735
精华
0
威望
0 点
宅币
0 个
贡献
0 次
宅之契约
0 份
在线时间
6 小时
注册时间
2017-7-28
发表于 2017-10-16 12:20:43 | 显示全部楼层

感谢大神,在此学习了。
回复 赞! 靠!

使用道具 举报

0

主题

17

回帖

51

积分

用户组: 小·技术宅

UID
2974
精华
0
威望
2 点
宅币
42 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2017-10-18
发表于 2017-10-18 11:10:43 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

17

回帖

44

积分

用户组: 初·技术宅

UID
3001
精华
0
威望
0 点
宅币
27 个
贡献
0 次
宅之契约
0 份
在线时间
2 小时
注册时间
2017-10-23
发表于 2017-10-23 18:22:19 | 显示全部楼层
好好学习,天天向上
回复 赞! 靠!

使用道具 举报

0

主题

11

回帖

28

积分

用户组: 初·技术宅

UID
3034
精华
0
威望
1 点
宅币
15 个
贡献
0 次
宅之契约
0 份
在线时间
1 小时
注册时间
2017-11-2
发表于 2017-11-2 18:35:45 | 显示全部楼层
学习学习 多谢多谢
回复 赞! 靠!

使用道具 举报

0

主题

11

回帖

28

积分

用户组: 初·技术宅

UID
3034
精华
0
威望
1 点
宅币
15 个
贡献
0 次
宅之契约
0 份
在线时间
1 小时
注册时间
2017-11-2
发表于 2017-11-2 18:47:30 | 显示全部楼层
厉害
回复

使用道具 举报

0

主题

25

回帖

22

积分

用户组: 初·技术宅

UID
3072
精华
0
威望
0 点
宅币
-3 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2017-11-10
发表于 2017-11-12 20:39:04 | 显示全部楼层
666666666666666666666666
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-20 02:30 , Processed in 0.045553 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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