理论教育 VegaPrime虚拟现实开发技术:提升模板效果的基本要素

VegaPrime虚拟现实开发技术:提升模板效果的基本要素

时间:2023-11-25 理论教育 版权反馈
【摘要】:模板效果的实现,主要包含3个基本要素:打开场景窗口设置模板效果开关,设置通道可绘制区域,设置模板显示效果。前面两项都非常简单,这一项是模板效果的核心,相对复杂一些。命名空间vrStencilTest 提供的结构体vrStencilTest::Element 用来储存模板效果的参数,vrStencilTest::Element的继承视图如图9.11.1所示。另外,还涉及简单的OpenGL 操作。在显示区域绘制实际的模板效果需要由OpenGL 绘制函数来完成。图9.11.1模板结构体继承视图

VegaPrime虚拟现实开发技术:提升模板效果的基本要素

模板效果的实现,主要包含3个基本要素:打开场景窗口设置模板效果开关,设置通道可绘制区域,设置模板显示效果。

(1)窗口开关。

在默认设置中,vpWindow的模板效果是关闭的:

pWindow_myWindow->setNumStencilBits(0);

因此,要使用模板效果,必须打开此开关:

pWindow_myWindow->setNumStencilBits(1);

(2)通道绘制区域。

在默认设置中,vpChannel的绘制区域,是归一化处理后的标准矩形:

pChannel_myChannel->setDrawArea(0.00,1.00,0.00,1.00);

实际上,setDrawArea的4个参数是归一化处理后相对于屏幕4个边线的距离:(www.daowen.com)

int setDrawArea (double L,double R,double B,double T);

4个参数L,R,B,T 分别对应父窗口的左边距、右边距、下边距和上边距,取值范围都是[0,1]。另外需要注意,4个参数的设置必须保证符合实际情况,否则绘制区域将不能正常显示。例如,绘制区域的左右边距应该保证绘制区域的左右两边不能错位,左边距过大可能使左边位于右边的右边,绘制区域将不能正常显示。

(3)设置模板显示效果。

前面两项都非常简单,这一项是模板效果的核心,相对复杂一些。模板效果借助于对场景通道的控制来完成,场景通道订阅类vsChannel::Subscriber 通过事件vsChannel::EVENT_PRE_DRAW 和vsChannel::EVENT_POST_DRAW 对通道进行处理。

命名空间vrStencilTest 提供的结构体vrStencilTest::Element 用来储存模板效果的参数,vrStencilTest::Element的继承视图如图9.11.1所示。

另外,还涉及简单的OpenGL 操作。在显示区域绘制实际的模板效果需要由OpenGL 绘制函数来完成。

图9.11.1 模板结构体继承视图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈