osgdistortion例子

本文详细介绍了osgdistortion例子,探讨如何在模型放大时产生变形效果,重点解析了setDomeCorrection、setDomeFaces和createDistortionSubgraph三个关键函数。同时,文章讲解了osg::View中的光照模式,包括NO_LIGHT、HEADLIGHT和SKY_LIGHT,以及它们在实际应用中的区别。通过对osgdistortion的深入分析,揭示了模型变形的实现原理和光源设置的细节。
摘要由CSDN通过智能技术生成
该例子实现了模型放大时,产生变形,模型夸张。
主要的功能在setDomeCorrection(viewer, arguments);、 setDomeFaces(viewer, arguments);、
createDistortionSubgraph( loadedModel, viewer.getCamera()->getClearColor());这三个函数中。
接下来设置了一下光源模型
while (arguments.read("--sky-light"))
    {
        viewer.setLightingMode
(osg::View::SKY_LIGHT);
    }
    
    if (viewer.getLightingMode()==osg::View::HEADLIGHT)
{
        viewer.getLight()->setPosition(osg::Vec4(0.0f,0.0f,0.0f,1.0f));
    }
enum LightingMode
        {
            NO_LIGHT,
            HEADLIGHT,
            SKY_LIGHT
     };
在osg::View中默认设置了一个头顶光源,关于这三种模式,光的属性中并没有,只是position的最后一
个参数是0,该光是方向光,在无穷远,大于0是位置光源。
LightingMode
是在osg::View中定义的,我们在SceneView中可能找到了答案,看看以下代码:
 switch(_lightingMod
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值