osg导入模型时,模型全黑的原因及解决方法分析
在导入飞机模型时,发现模型是黑咕隆咚一片,然后翻阅资料,找到三个可能性。
(一)几何模型没有法线导致
利用osgUtil::SmoothingVisitor自动生成法线
#include <osgUtil/SmoothingVisitor>
osg::ref_ptr<osg::Geometry> houseRoof = new osg::Geometry;osgUtil::SmoothingVisitor smv;smv.smooth(model);
(二)模型放大缩小导致
放大缩小后,法线不会跟着变化,因此需要进行设置,如下:
//添加模型osg::Node* model = osgDB::readNodeFile("cessna.osg");osg::MatrixTransform* mtFlySelf = new osg::MatrixTransform;//用于调整模型本身的姿态mtFlySelf->addChild(model);mtFlySelf->getOrCreateStateSet()->setMode(GL_RESCALE_NORMAL, osg::StateAttribute::ON);
(三)没有给模型添加光源导致
之前我一直以为模型的光源是跟着地表的灯光,默认添加的,现在发现并不是。可以添加八个光源,我添加了两个。
mtFlySelf->getOrCreateStateSet()->setMode(GL_LIGHTING,osg::StateAttribute::ON);mtFlySelf->getOrCreateStateSet()->setMode(GL_LIGHT0,osg::StateAttribute::ON);mtFlySelf->getOrCreateStateSet()->setMode(GL_LIGHT1,osg::StateAttribute::ON);
osg导入模型时,模型全黑的原因及解决方法分析相关推荐
- 使用IDEA时快捷键无效的原因和解决方法
使用IDEA时快捷键无效的原因和解决方法 今天尝试用IDEA全局搜索时(Ctrl+Shift+F),发现无效. 浏览了一些博客,然后发现大家的回答出奇的一致.所以肯定是了: IDEA快捷键失效的原因, ...
- Word2007不显示文档结构图的原因及解决方法分析
概述: 原因:分节符插入位置在标题自动生成的编号后所致 解决方法:逐个删除分当中的分节符,尤其是在标题之前(显示不完全的)分节符. 最近写一篇技术方案书,发现文档结构图不显示,具体如图所示: ...
- 画图时屏幕闪烁的原因和解决方法
显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题.而且多数人认 为MFC的绘图函数效率很低,总是想寻求其它的解决方案. MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单,只要使用 ...
- 用execSQL语句建表时提示“syntax error”原因及解决方法
如下图,sCreateTableCommand为String类型.通过该变量,使用db.execSQL(sCreateTableCommand)执行SQL语句,创建一个名为DB_TABLE的表. 但是 ...
- 0xC0000005: 读取位置 0x6C6C6568 时发生访问冲突的原因及解决方法
程序很简单,就想打印字符串数组中的每一个字符串 void test(char** s, int size) { for (int i = 0; i < size; i++) printf(&qu ...
- 人人围网站宕机原因及解决方法分析
首先打个广告,我们的网站人人围,一个社交.新闻分发平台:http://www.renrenwei.com/ 服务器架构:nginx+mysql+mongodb+php,用户登录信息session存在m ...
- 宝塔搭建php站点打不开,宝塔面板绑定站点域名不能打开的原因及解决方法分析...
我们很多站长在建站的时候,甭管我们是不是有运维技术能力,但是有些时候由于懒惰或者依赖性会选择傻瓜式的一键安装包.包括我们以前使用一键脚本LNMP/LAMP安装WEB环境的,如今有很多人也会选择小皮或者 ...
- 3d缺少html文件,3dmax打开时显示缺少外部文件的原因及解决方法
为什么每次打开3DMAX都显示缺少外部文件?在做3dmax模型贴图或者下载模型之后,经常会出现缺少外部文件的情况,这是怎么回事?遇到这一情况又该如何解决呢?接下来小编就给大家整理了用3dmax打开模型 ...
- xp系统运行php,window_Xp系统安装或运行软件时提示“EXE不是有效Win32应用程序”的故障原因及解决方法,部分Xp系统用户在双击安装某 - phpStudy...
Xp系统安装或运行软件时提示"EXE不是有效Win32应用程序"的故障原因及解决方法 部分Xp系统用户在双击安装某个软件时,会遇到"EXE不是有效Win32应用程序&qu ...
最新文章
- ProgressDialog的使用-------------范例(学习笔记)
- zabbix—安装agent客户端(linux版)
- Redis - Redis command timed out nested exception is io.lettuce.core.RedisCommandTimeoutException
- 启动redis闪退/失败
- luogu P1220 关路灯
- c语言程序算法思想,C语言实现科学计算器(算法思想)
- 使用firefox44版本,弃用chrome
- wps 甘特图_【WPS神技能】在Excel表格中用图表阶梯式的展示任务进程?找甘特图呀...
- Java列表removeAll(Collection)示例
- 剩余方差matlab,用matlab的var函数求方差
- 自己开发的一套实用故障报修管理系统【分享推荐大家】
- 转置矩阵,矩阵的行列式,伴随矩阵,逆矩阵的概念及C#求解
- 戴尔服务器bios修改风扇,BIOS风扇调整
- spark学习之SparkSQL
- 深度学习 —— 偏差与方差
- 鞋长度和欧美的标准宽度换算表
- 因果分析系列6--相关,回归与因果
- Linaro Ubuntu for Arndale Octa Broad Exynos 5420开发板,启动系统sd卡的制作。
- 线上Mysql数据库崩溃事故的原因和处理
- Java数字转换为人民币的大写