zoukankan      html  css  js  c++  java
  • Ogre 学习笔记 (二) 环境:阴影 、雾效、灯光

    1. 雾效

    雾的类型:线性和指数,线性雾呈线性增长厚度,指数雾呈指数增长厚度。每个单位距离的雾,后者增长的快。

    ColourValue fadeColour(0.9,0.9,0.9);

    mWindow->getViewport(0)->setBackgroundColour(fadeColour); //如果有多个视口,用getNumViewports来获取视口数

    mSceneMgr->setFog(FOG_LINEAR,fadeColour,0.0,50,500); //第一个参数是雾的类型,第二个参数是雾的颜色,第三个参数对于线性雾是没用的,第四个参数和第五个参数表示雾的厚度范围。

    mSceneMgr->setFog(FOG_EXP,fadeColour,0.005); //指数雾不需要指定起始和结束,而需要指定密度

    雾是曲化的形式存在,因此在和其他平面相交的地方会出问题,解决方案是用曲面和它接触。

    2.阴影

    全面支持多种阴影技术,包括模版阴影(stencil),纹理阴影(texture),叠加阴影(additive),调制阴影(modulative)。

    先创建环境光,再设定shadow的类型。

    mSceneMgr->setAmbientLight(ColourValue(0,0,0));

    mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_ADDITIVE); //阴影类型为叠加阴影

    ent=mSceneMgr->createEntity("Robot","robot.mesh");

    ent->setCastShadows(true);

    3.灯光

    光类型:点光源,聚光灯,方向光

    光特征:漫反射,镜面反射

    light=mSceneMgr->createLight("light1");

    light->setType(Light::LT_POINT);   //光类型为点光源

    light->setPosition(Vector3(0,150,250)); //灯光本身只有2个函数setPosition和setDirection

    light->setDiffuseColour(1.0,0.0,0.0);   //漫反射

    light->setSpecularColour(1.0,0.0,0.0);   //镜面反射

    light=mSceneMgr->CreateLight("light2");   //加一个黄色的方向光照到Robot的前面

    light->setType(Light::LT_DIRECTIONAL);

    light->setDiffuseColour(ColourValue(.25,.25,0));

    light->setSpecularColour(ColourValue(.25,.25,0));

    light->setDirection(Vector3(0,-1,1)); //方向光是从无限远的发出的点光源,所以是平行光,不需要指定位置,仅仅需要用向量来表示它的方向

    light=mSceneMgr->createLight("light3"); //加一个蓝色的聚光灯

    light->setType(Light::LT_SPOTLIGHT);

    light->setDiffuseColour(0,0,1.0);

    light->setSpecularColour(0,0,1.0);

    light->setDirection(-1,-1,0);

    light->setPosition(Vector3(300,300,0)); //设定聚光灯的位置和方向

    light->setSpotlightRange(Degree(35),Degree(50)); //聚光灯光束有宽度,包括两个部分,核心光束和周边光束。

  • 相关阅读:
    Linux之基础系统优化
    Linux之shell命令
    Django解决跨域问题
    Django中使用geetest验证
    python2与python3的区别
    一个长得很丑的登录和注册
    Django组件-forms组件
    Django组件-中间件
    cookie、session与用户认证组件
    jquery练习
  • 原文地址:https://www.cnblogs.com/easyfrog/p/2849775.html
Copyright © 2011-2022 走看看