3D坐标

fzj111 2011-10-23 03:23:53
v[0] = Vertex(-1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);中的坐标前3个数是以像素点为坐标吗?还是以什么为坐标,怎么确定一个3D图形的坐标点的数值呢?!!
...全文
104 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-10-25
  • 打赏
  • 举报
回复
1.0f是float常量
1.0是double常量
CabinLS 2011-10-25
  • 打赏
  • 举报
回复
你的Vertex应该是一个结构体吧。
那么你的顶点格式是怎么定义的呢?
根据你问题里面的v[0] = Vertex(-1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);
你的顶点格式应该是定义成:FVF_XYZW | FVF_TEX1 对吧。
Vertex中前4个点表示这张纹理在世界坐标系中的坐标,后2个点表示纹理UV
为什么用-1.0f这些的话,因为在渲染的时候好做平移、缩放和旋转等。。
当然,你也可以把顶点坐标写成大于1,那样,你就不需要在渲染的时候进行缩放了
DirectX3D龙书里面有很详细的解释,你不妨看下
ryfdizuo 2011-10-23
  • 打赏
  • 举报
回复
这个立方体的边长为2.
v[0] = Vertex(-1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);
这个可能是顶点位置和纹理坐标吧?
fzj111 2011-10-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 fzj111 的回复:]
v[0] = Vertex(-1.0f, 0.0f, -1.0f, 0.0f, 0.707f, -0.707f);中的坐标前3个数是以像素点为坐标吗?还是以什么为坐标,怎么确定一个3D图形的坐标点的数值呢?!!
[/Quote]
vertices[0] = Vertex(-1.0f, -1.0f, -1.0f);
vertices[1] = Vertex(-1.0f, 1.0f, -1.0f);
vertices[2] = Vertex( 1.0f, 1.0f, -1.0f);
vertices[3] = Vertex( 1.0f, -1.0f, -1.0f);
vertices[4] = Vertex(-1.0f, -1.0f, 1.0f);
vertices[5] = Vertex(-1.0f, 1.0f, 1.0f);
vertices[6] = Vertex( 1.0f, 1.0f, 1.0f);
vertices[7] = Vertex( 1.0f, -1.0f, 1.0f);
这是一个画立方体的点,为什么要用(-1.0f, -1.0f, -1.0f)不用(-2.0,2.0, -2.0)..等其他的大于他们的坐标呢?
fzj111 2011-10-23
  • 打赏
  • 举报
回复
vertices[0] = Vertex(-1.0f, -1.0f, -1.0f);
vertices[1] = Vertex(-1.0f, 1.0f, -1.0f);
vertices[2] = Vertex( 1.0f, 1.0f, -1.0f);
vertices[3] = Vertex( 1.0f, -1.0f, -1.0f);
vertices[4] = Vertex(-1.0f, -1.0f, 1.0f);
vertices[5] = Vertex(-1.0f, 1.0f, 1.0f);
vertices[6] = Vertex( 1.0f, 1.0f, 1.0f);
vertices[7] = Vertex( 1.0f, -1.0f, 1.0f);
这是一个画立方体的点,为什么要用(-1.0f, -1.0f, -1.0f)不用(-2.0,2.0, -2.0)..等其他的大于他们的坐标呢?
ryfdizuo 2011-10-23
  • 打赏
  • 举报
回复
像素是二维的窗口坐标。
3d坐标是三维场景的逻辑坐标,没有单位。。。

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧