FreeSouth的学习osg小贴士
http://www.osgchina.org/index.php?option=com_content&view=article&id=150&catid=91&Itemid=493
1 尽量多的阅读文档.
a) 可以在书籍菜单项下找到OSG的相关书籍,中英尽现。个人觉得必读的书有array的《最长的一帧》,《OSG三维渲染引擎设计与实现》,这是讲原理的,其它偏重于实际应用的书籍,择看便可。
b) 熟悉中英文的OSG官方网站,英文链接,中文链接,中文论坛,英文上还有个 FAQ。
c) 可以订阅右侧邮件列表,查看交流信息 mailing list archives
如果你是个初学者,你的问题会得到很快的答复。
2 使用源码
如果是个软件开发人员,是必须要调试软件源码的,这样你才能知道代码里有什么以及哪些地方是值得注意的。《最长的一帧》就是array调试frame函数解读的成果,可以学习很多知识。因此调试代码是必须的,要看类图、类功能、各种注释等,这也会让你避免使用到OSG的一些为了兼容性保留接口而废弃的功能,比如Geometry::setVertexIndices()。
3 读函数注释
看见代码中有注释,是必须要警示的,因为很可能里面提示的有重要的信息,使用方法等。
4 查看 OpenGL 调用
定位简单的渲染问题,可以使用一些OpenGL跟踪工具查看OpenGL的调用情况。这几个工具都是可以的:BuGLe, glIntercept, glTrace, gDEBugger
如果你懂OpenGL,那就通过这种调试方法很容易看出问题。如果不懂,就买本红宝蓝宝天天看吧。
5 使用调试打印
将OSG_NOTIFY_LEVEL 设置为 INFO 或 DEBUG 然后看打印,OSG的打印机制很成熟,一般而言会清楚的告诉你哪里出了问题。
6 输出你的场景到.osg文件
将你的场景(或部分场景)输出到.osg文件当中,然后用写字板打开,看看里面的结构是不是符合你的预期。
7 使用优化
使用优化中的CHECK_GEOMETRY 功能,以让其检查Geometry中的常见错误,比如使用了颜色逐顶点绑定,但是颜色数组中的颜色数量却不够等等。
8 非常熟练的使用osgconv
比如把你的场景输出到.osg之后,打开OSG_NOTIFY_LEVEL到DEBUG或INFO,然后使用osgconv运行Optimizer的CHECK_GEOMETRY特性,则会出打印看模型是否有问题。
9 非常熟练的使用osgViewer
osgViewer具有非常多的功能,可以统计顶点数量、查看帧速、截屏以及按路径运动等等。
10 考虑购买一个技术支持
如果需要专业的帮助,可以向 Paul Martz 或者 Robert Osfield购买专业的技术支持。它们会给你解答的非常详细,只要你付了钱。或者找其它的专业服务机构。
FreeSouth的学习osg小贴士的更多相关文章
- Elasticsearch 学习之提升性能小贴士
小贴士1:规划索引.分片 以及集群增长情况 ES使得创建大量索引和超大量分片非常地容易,但更重要的是理解每个索引和分片都是一笔开销.如果拥有太多的索引或分片,单单是管理负荷就会影响到ES集群的性能,潜 ...
- 【小贴士】虚拟键盘与fixed带给移动端的痛!
前言 今天来公司的主要目的就是研究虚拟键盘与fixed的问题,期间因为同事问起闭包与事件委托(阻止冒泡)相关问题,便穿插了一篇别的: [小贴士]工作中的”闭包“与事件委托的”阻止冒泡“,有兴趣的朋友可 ...
- 初识bd时的一些技能小贴士
既然小豆腐如此给力,而且充分的利用主动学习的优势,已经有了迅速脑补,压倒式的优势,不过这只是表面而已,一切才刚刚开始,究竟鹿死谁手,还有待验证. 以上可以看到,小豆腐为什么拼命的要teach我们了么, ...
- C和C++的内存操作小贴士(一):const char*的内存释放问题
C和C++的内存操作一直是困扰开发人员的老问题,基本概念相信老司机们都很清楚了,在这里就不做过多的描述了,只是把在实际开发中可能遇到的一些小问题的案例列举下,供大家参考.“C和C++的内存操作小贴士” ...
- 初识bigdata时的一些技能小贴士
既然小豆腐如此给力,而且充分的利用主动学习的优势,已经有了迅速脑补,压倒式的优势,不过这只是表面而已,一切才刚刚开始,究竟鹿死谁手,还有待验证. 以上可以看到,小豆腐为什么拼命的要teach我们了么, ...
- 优雅编写Python3 的62个小贴士
iterable技巧 ▍1.创建一个数字序列(从0到10,间隔为2) >>> range(0,10,2)[0, 2, 4, 6, 8] ▍2.对一串数字求和(从0到10,间隔为2 ...
- Angular2 小贴士 Name
Angular2 正式版已经发布了一个月了,我也是通过各种方式在进行验证是否可以满足我们的需求,今天我就发现了一个问题.现在我们来一起说明一下,这个可能不算是bug,而应该需要我们记住就可以了. 我们 ...
- SVN小贴士
我辛辛苦苦写的到哪里了? SVN小贴士SVN服务器上的代码项目组公用,你的每一个提交都会体现给项目组每个人,所以提交要慎重,要注意避免代码冲突,使用SVN小贴士: 1.提前宣布开发计划,保持项目组成员 ...
- android性能小贴士 翻译
转自http://developer.android.com/training/articles/perf-tips.html 性能小贴士: 这篇文档主要一些微优化可以提升应用程序性能,但是这些改变不 ...
随机推荐
- 增量式PID的matlab实现
首先,增量式PID的实现公式: 式中 Δe(k)=e(k)-e(k-1) 进一步可以改写成 式中 . . 为了便于理解,也可写成: 式中e(k)为第k次采样时的设定值与实际值的差,e(k-1 ...
- asp.net SessionState模式的配置及使用
由于项目dll文件变动比较频繁,而保存登陆的状态又保存在Session中,所以导致用户经常无故掉线(PS:dll变动的时候导致Session).有一种方法可以长期保存session,那就是sessio ...
- Webservice实践(七)CXF 与Spring结合+tomcat发布
上一节介绍了如何使用CXF 来发布服务,但是没有介绍使用web 容器来发布,很多项目需要用tomcat 这样的容器来发布.另外本节将介绍CXF 与spring 结合的方法. 一 目标: 1.利用spi ...
- RSA算法原理与加密解密 求私钥等价求求模反元素 等价于分解出2个质数 (r*X+1)%[(p-1)(q-1)]=0
Rsapaper.pdf http://people.csail.mit.edu/rivest/Rsapaper.pdf [概述Abstract 1.将字符串按照双方约定的规则转化为小于n的正整数m, ...
- Spring 依赖注入 基于构造函数、设值函数、内部Beans、集合注入
Spring 基于构造函数的依赖注入_w3cschool https://www.w3cschool.cn/wkspring/t7n41mm7.html Spring 基于构造函数的依赖注入 当容器调 ...
- Rochambeau---poj2912||zoj2751(并查集类似于食物链)
题目链接:http://poj.org/problem?id=2912 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1751 ...
- python中的Redis键空间通知(过期回调)
介绍 Redis是一个内存数据结构存储库,用于缓存,高速数据摄取,处理消息队列,分布式锁定等等. 使用Redis优于其他内存存储的优点是Redis提供持久性和数据结构,如列表,集合,有序集和散列. 在 ...
- python实现文件夹遍历
python 中os.path模块用于操作文件或文件夹 os.path.exists(path) 判断文件路径是否存在 dir = "c:\windows"if os.path.e ...
- java构建树用的Node
package org.ccnt.med.body; import java.util.ArrayList; import java.util.List; public class Node { // ...
- 一个很大的文件,存放了10G个整数的乱序数列,如何用程序找出中位数。
一.梳理审题 一.看清题目: 注意这个题目的量词,这个文件中有10G个整数,而不是这个文件占了10G的内存空间. 二.一些疑问: 在计算机中我们讲的G.M等都是存储容量的概念,但是一般都会在会面加上B ...