游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2633|回复: 8

问一个很弱的问题,可是我想不通

[复制链接]

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2005-4-13 10:24:00 | 显示全部楼层 |阅读模式
opengl 或者directx里面 的 单位 1,到底表示什么呢,

directx

CUSTOMVERTEX g_Vertices[] =
    {
        { -1.0f,-1.0f, 0.0f, 0xffff0000, },
        {  1.0f,-1.0f, 0.0f, 0xff0000ff, },
        {  0.0f, 1.0f, 0.0f, 0xffffffff, },
    };

opengl
glBegin(GL_POLYGON);       
glVertex3f (0.25, 0.25, 0.0);       
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0);
glEnd();
这些顶点的数字单位肯定不是象素,可是到 了最后的显示,一定有他实际的长度,有公式
有可以求出来吗,opengl 和 directx 的默认尺度是一样的吗? 我郁闷好几天了,
请高手帮我解答,亏我还有 directx写了不少 demo ,最后这个问题还是没有想通

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-4-13 14:25:00 | 显示全部楼层

Re:问一个很弱的问题,可是我想不通

没有单位.完全跟你在数学中学到的坐标一样.

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-4-13 19:34:00 | 显示全部楼层

谢谢,

可是,最后到屏幕显示肯定是有单位的, 大概有 50象素,物体投影的大小跟

camera有关系,可是如果 camera的参数和其他条件都固定,肯定是可以算出来的,比如 边长为 1的立方体,在 camera 和其他都默认的条件下在800*600的窗口 为 50象素, 怎么计算呢,请高手帮帮忙,我还是不大明白,我肯定有个地方弄错了,我也知道 1并没有单位,可为什么到最后就有实际大小了呢,经过了 世界变换,最后到 屏幕坐标系,把这个没有意义的 1 变成了有意义, 焦点的距离怎么得到呢,就是观察点到 投影平面的距离,是多少呢?

多谢了,♂樱♀.

0

主题

10

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2005-4-13 22:15:00 | 显示全部楼层

Re:问一个很弱的问题,可是我想不通

跟你调用glProjection ()的时候给的参数是对应的。经过3d空间到2D空间变换就可以对应了。

17

主题

85

帖子

85

积分

注册会员

Rank: 2

积分
85
发表于 2005-4-14 00:22:00 | 显示全部楼层

Re: 问一个很弱的问题,可是我想不通

在光栅化(Rasterization)之前
也就是进行世界坐标系变换、Camera变化 Projection变化
这些变化你完全可以认为是在一个笛卡尔坐标系中进行
程序中所使用的坐标和真实世界的坐标一致

进行光栅化之后,这个笛卡尔坐标系中的每个点(涉及到物体的这些点)
都会在屏幕上有一个点与之相对应(也就是一个笛卡尔坐标系中的点对应屏幕上的一个点)
此时可能笛卡尔坐标系中多个点都对应屏幕上的一个点
通过模版测试 深度测试进行筛选 最终只留一个
也就是最终生成的图像

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-4-14 09:03:00 | 显示全部楼层

非常感谢,我明白了 许多

我突然清楚了,我要努力学啦

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-4-14 09:43:00 | 显示全部楼层

Re:问一个很弱的问题,可是我想不通

glProjection () ,这个api 做什么的啊,我怎么没有找到,
我只知道下面两个设置投影矩阵
void glFrustum(GLdouble left,GLdouble Right,GLdouble bottom,GLdouble top,
      GLdouble near,GLdouble far);


void gluPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear, GLdouble zFar);

190

主题

1801

帖子

2096

积分

金牌会员

Rank: 6Rank: 6

积分
2096
QQ
发表于 2005-4-15 01:08:00 | 显示全部楼层

Re:问一个很弱的问题,可是我想不通

有公式的,公式很长,特别是投影的那一段,参考图形学的淑
glprojection参考blue book,就是reference manual

24

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
 楼主| 发表于 2005-4-16 13:20:00 | 显示全部楼层

Re:问一个很弱的问题,可是我想不通

谢谢 大师,果然不是个简单的问题,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 08:38

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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