游戏开发论坛

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

请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

[复制链接]

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2009-1-17 09:38:00 | 显示全部楼层 |阅读模式
已关闭光
g_pD3DDevice->SetRenderState(D3DRS_LIGHTING,   false);

代码
CUSTOMVERTEX   cvVertices[72];
  
  static double PI = 3.1415926;
  D3DXVECTOR3 vpoint[72];
  D3DXVECTOR3 vvv=vPickPos;//pickpoint
  for (int kp=0;kp<72;kp++)
  {//vpoint[kp].x=10.0f*sin((10*kp/180)*PI);
        //vpoint[kp].z=10.0f*cos((10*kp/180)*PI);
          vpoint[kp].x=terrain_state_t.size*cos(kp*360.0/72)+vvv.x;
          vpoint[kp].z=terrain_state_t.size*sin(kp*360.0/72)+vvv.z;
       
          
          
        cvVertices[kp].x=vpoint[kp].x;
        cvVertices[kp].z=vpoint[kp].z;
        cvVertices[kp].y=getheight(vpoint[kp].x,vpoint[kp].z)+0.5f;
    cvVertices[kp].colour=D3DCOLOR_XRGB(255,  255,   0);
        //,SimpleTerrain1.getheight(vpoint[kp].x,vpoint[kp].z)+0.05f,vpoint[kp].z,D3DCOLOR_XRGB(255,  255,   0));   
  }
sf_200911793739.jpg

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
 楼主| 发表于 2009-1-17 10:19:00 | 显示全部楼层

Re: 请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

画圆OK,还有黑色?
vpoint[kp].x=terrain_state_t.size*cos((kp*PI/180)*360/72)+vvv.x;
          vpoint[kp].z=terrain_state_t.size*sin((kp*PI/180)*360/72)+vvv.z;

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2009-1-17 14:42:00 | 显示全部楼层

Re:请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

你把拾取点为中心的圆划分成15到20个顶点,求出每个点x,z坐标,这很容易啊,然后根据x,z坐标在你的地形里面求出y地形的高度,根据xz求y,这个算法在地形里面很基本吧,这样再把这些点首尾连起来,非常简单的,不知道你怎么又搞那么复杂了?

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
 楼主| 发表于 2009-1-17 17:48:00 | 显示全部楼层

Re: 请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

tonykee
画圆OK,还有黑色?
sf_2009117174743.jpg

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
 楼主| 发表于 2009-1-17 18:58:00 | 显示全部楼层

Re: 请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

非常感谢tonykee 画圆OK
sf_2009117185813.jpg

9

主题

75

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2009-1-20 09:06:00 | 显示全部楼层

Re:请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

lzp,请问下你上面的那个图是怎么拾取的地形?地形是MESH?
顺便问下,我2049*2049的地形分成64*64个BLOCK,有什么好方法拾取交点不?我现在的方法是先拾取block,不过是基于平面的block,所以摄像机越垂直向下才越准确,不然遇到有起伏的地段就要发生错误~~

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
 楼主| 发表于 2009-1-20 19:10:00 | 显示全部楼层

Re: 请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

楼上:BLOCK先做包围盒。

我的顶点检测如下
V0---------------V1





V2----------------V3
先 V0,V1,V3三角
后 V0,V3,V2三角
有时不能检测到,不直楼上如何做???

9

主题

75

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2009-1-20 20:29:00 | 显示全部楼层

Re:请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

BLOCK做包围盒?你说是在拾取的时候用吗?
我每次渲染的时候都把每个BLOCK里面被渲染了的顶点索引单独存一次,拾取的时候判断在哪个BLOCK,然后用遍历拾取这个BLOCK里面所有被渲染了的索引组成的三角形

75

主题

385

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
 楼主| 发表于 2009-1-20 21:35:00 | 显示全部楼层

Re: 请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

BLOCK做包围盒
初始化时取最高,最低高度,BLOCK 坐标做包围盒,检测
变化时更新BLOCK包围盒 最高,最低高度

另一种办法把相连接的BLOCK顶点都加入来检测
-----------------------------------
    1    |    2     |     3     |
---------------------------------
    4    |    5     |     6     |
--------------------------------
   7    |    8      |    9      |
---------------------------------     
假如首先检测是在BLOCK5,把5周围的BLOCK 顶点加入一起检测
明白么?????????

9

主题

75

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2009-1-23 10:23:00 | 显示全部楼层

Re:请教一下tonykee,地图上的黄圈圈是不圆和黑色的?

OK,知道了,谢谢了哈
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 11:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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