游戏开发论坛

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

用 “广告牌“来显示玩家头顶名字,效果不好。。。

[复制链接]

35

主题

59

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2007-7-29 08:45:00 | 显示全部楼层 |阅读模式
如题,离的远采样不够了,就看不清了,纹理是根据名字现生成出来的,大家谁有什么好方法吗?

5

主题

972

帖子

975

积分

高级会员

Rank: 4

积分
975
发表于 2007-7-29 10:24:00 | 显示全部楼层

Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

用正交投影试试

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-7-29 13:04:00 | 显示全部楼层

Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

LZ的思路有问题,不需要用公告牌技术,楼上说的方向是正确的,要用投影技术找到视锥投影z平面的x,y坐标,然后在这个坐标的位置直接写2d的文字就就可以了,这是我以前写的,你参考一下吧
另外这种思路可以实现绕点的公告牌效果,如果要实现绕轴的公告牌就是另一种思路了

void XScreen:rawTextToWorld(PSTR pMsg, float x, float y, float z,
                                         int rect_width, int  rect_height, D3DCOLOR color)
{
        D3DXVECTOR3 p(0.0f, 0.0f, 0.0f);

        D3DXMATRIX worldMat;
        D3DXMatrixIdentity(&worldMat);
        worldMat._41 = x;
        worldMat._42 = y;
        worldMat._43 = z;

        D3DXMATRIX viewMat;
        D3DXMATRIX projectMat;
        D3DVIEWPORT9 viewPortMat;

        m_pDevice->GetTransform(D3DTS_VIEW, &viewMat);
        m_pDevice->GetTransform(D3DTS_PROJECTION, &projectMat);
        m_pDevice->GetViewport(&viewPortMat);


        D3DXVECTOR3 s;
        //获取3D空间的P点投影到屏幕上的s点
        D3DXVec3Project(&s, &p,
                (D3DVIEWPORT9 *)&viewPortMat,
                (const D3DXMATRIX*)&projectMat,
                (const D3DXMATRIX*)&viewMat,
                (const D3DXMATRIX*)&worldMat);
        //printf("%s  %f %f %f \r\n", pMsg, s.y, s.x, s.z);
        if(s.z>0 && s.z <= 1.0f) //如果在可见范围只外投影的值和原点的z距离会大于1.0f
        DrawText(pMsg, (int)s.y, (int)s.x, rect_width, rect_height, color);
}

35

主题

59

帖子

65

积分

注册会员

Rank: 2

积分
65
 楼主| 发表于 2007-7-29 17:05:00 | 显示全部楼层

Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

直接渲到屏幕上,一群玩家在一起. 看见屏幕上全是字,没有距离感阿

11

主题

112

帖子

112

积分

注册会员

Rank: 2

积分
112
发表于 2007-7-29 20:03:00 | 显示全部楼层

Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

设定一个距离,在这个距离内的才现显嘛,要不鼠标点中的玩家才显示

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2007-7-29 23:11:00 | 显示全部楼层

Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

那么小的文字还想有距离感?呵呵。。。。动脑筋好好想想吧。楼上说的对,一定范围内的名字就显示。
而且你好好观察一下游戏里面的名字?大小会变吗?

0

主题

769

帖子

1052

积分

金牌会员

Rank: 6Rank: 6

积分
1052
发表于 2007-7-29 23:55:00 | 显示全部楼层

Re: Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

tonykee: Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

那么小的文字还想有距离感?呵呵。。。。动脑筋好好想想吧。楼上说的对,一定范围内的名字就显示。
而且你好好观察一下游戏里面的名字?大小会变吗?

有时候会
象WOW有时候名字就会变得比人要大好几倍
不知道是被什么BUG搞出来的

35

主题

59

帖子

65

积分

注册会员

Rank: 2

积分
65
 楼主| 发表于 2007-7-30 10:33:00 | 显示全部楼层

Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

不是BUG吧,我觉得WOW的名字显示就是用广告牌做的,而不是直接画到屏幕上,不过直接画到屏幕上确实效果要好一些

55

主题

331

帖子

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2007-7-31 09:17:00 | 显示全部楼层

Re:用 “广告牌“来显示玩家头顶名字,效果不好。。。

wow 的头顶字就是 billboard, 距离远了一样看不清。
billboard 有 billboard 的好处。
正交投影有正交投影的好处。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 15:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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