我要发帖 回复

正式会员

5

主题

25

积分

0

专家分

:

私信
发表时间 : 2009-11-27 15:30:09 | 浏览 : 885    评论 : 0
我们小组最近在做一个项目,工具是vs2003下的c++和vega prime2.0,项目中的每个模型都有一个名字(英文字符串),为了在任何距离下模型的名字都能看到,所以模型名字用的是平行投影(即正交投影),
但是问题随之而来:模型名字在应用平行投影后,其深度检测不正常了,即使模型名字被其他模型遮挡住也依然显示!
在网上下了一个代码,结果也是这种情况,请问这个问题该如何解决,请大家帮帮忙!
附上我的代码:
virtual void notify(vsChannel::Event, const vsChannel *channel,
                vrDrawContext *context) {

                         //get the world to screen matrix and viewport
                        int ox, oy, sx, sy;
                        vuMatrixf world2screen;
                        channel->getVrChannel()->getViewport(&ox, &oy, &sx, &sy);
                        world2screen = channel->getVrChannel()->getWorldToScreenMatrix();

                        vuVec4f point;
                        std::list<KTObject*>::iterator objectIterator=m_Objects.begin();
                        context->pushElements(true);

                        // need to disable the depth buffer since it's enabled by default
                        vrDepthTest::Element depthTestElement;
                        depthTestElement.m_enable = false;
                        context->setElement(vrDepthTest::Element::Id, &depthTestElement);
                        // set up an orthographic projection.  In this case we'll just map the
                        // channel viewport to 0 to 1 both horizontally and vertically.
                        vrTransform::ElementProjection projectionElement;
                        projectionElement.makeOrthographic(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f);
                        context->setElement(vrTransform::ElementProjection::Id,
                                &projectionElement);
**************************************在此处写模型名字的显示代码*************************************
context->popElements();

最近VR访客

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-9-29 10:10 AM

返回顶部