查看: 3629|回复: 12

osgNV工程复生!提供Cg语言及更多支持

[复制链接]

该用户从未签到

发表于 2008-12-7 21:08:38 | 显示全部楼层 |阅读模式
osgNV是一个创建于2002年,历史悠久且功能强大的,基于OpenSceneGraph和nVIDIA Cg开发的第三方工程。它的主要工作是将OpenSceneGraph与nVIDIA的强大开发工具相结合,以实现各种工业级的惊人渲染效果。由于主创者项目调动与个人精力的原因,osgNV曾于2006年底宣布中止开发;其间已经完成的工作包括:
  • osgNV:核心库,包括各种基本量和回调Callback的定义。
  • osgNVExt:针对NV显卡实现的各种OpenGL扩展,主要有Texture Shader,Register Combiner和Vertex Program。
  • osgNVCg:与nVIDIA Cg语言(http://developer.nvidia.com/object/cg_toolkit.html)的整合,可以在OSG中实现Cg编程。
  • osgNVParse:与nVIDIA NVParse工具(http://developer.nvidia.com/object/nvparse.html)的整合,可以使用NVParse工具简化Vertex Program编程。
  • osgNVSLang:与OpenGL着色语言的整合,可以在OSG中实现GLSL编程。


这其中,osgNVParse和osgNVSLang模块继续开发的意义已经不大,这是由于OSG核心库已经对相关的功能提供了较为完整的支持。而OSG与Cg语言的整合,由于后者的不断发展以及nVIDIA全球领先的GPU编程技术,因而仍然具有巨大的意义。

本人已经与osgNV的原作者Marco Jez联络并达成共识,将由我从现在起开始负责osgNV的继续开发工作,而Marco将担任此项目的顾问工作。主要的开发方向包括:
  • 支持最新的OpenSceneGraph版本,并使用CMake实现跨平台的软件编译工作。
  • 支持最新的nVIDIA SDK库以及最新的GL_NV扩展(那些尚未被OSG所支持的)。
  • 支持最新的nVIDIA Cg 2.1以及后继版本在OSG中的运用。
  • 支持nVIDIA physX(http://developer.nvidia.com/object/physx.html)物理引擎与OSG的整合。
  • 支持nVIDIA CUDA(http://www.nvidia.com/object/cuda_home.html)与OSG的整合。(不过osgPPU正在尝试提供类似的支持,可能需要继续协商决定)。


osgNV网站地址:
http://osgnv.sourceforge.net/

支持OSG 2.7.6 + Cg 2.1的pre-0.6.1版本下载(需要CMake工具):
https://sourceforge.net/projects/osgmodeling/

最新软件版本的SVN下载:
svn co https://osgnv.svn.sourceforge.net/svnroot/osgnv osgnv

希望大家多多关注和支持。有志于高性能图形渲染以及深入GPU编程的朋友也欢迎加入项目并为其作出贡献。
osgNV1.JPG
osgNV2.JPG

该用户从未签到

发表于 2008-12-7 21:31:27 | 显示全部楼层
支持~~~~~~~~~~~~~~~

该用户从未签到

 楼主| 发表于 2008-12-8 17:04:59 | 显示全部楼层
呵呵,有机会大家可以好好聊聊,随着虚拟现实行业在中国的发展,这样的研讨机会会越来越多的。不过现在各大书店还是把OpenGL/DirectX的书籍放在“影视制作”的书柜里(参看西单图书大厦~~),普及的路还很长

该用户从未签到

发表于 2008-12-8 17:40:31 | 显示全部楼层
版主什么时候有时间大家见个面,给我们好好讲讲OSG的方方面面!



哈哈哈,,我明年倒是很有时间,,,明年开办一个培训班估计也没多少人来参加,呵呵~~~讨论会倒是不错,,,举办我一定会去的,,,不过,,得给我报销开支啊~~~~~~

该用户从未签到

发表于 2008-12-8 21:48:26 | 显示全部楼层
哈哈,,,这不仅仅是会费的问题,,,还有就是在何处何地举办,,,费用也是一个很大的问题,,,,要一定数量的人参加才能举办这样的研讨会~~~~

该用户从未签到

发表于 2008-12-10 10:53:48 | 显示全部楼层
哈哈哈,,这事你得问问array,,,看看怎么样???

请教一个问题,,,<osgNVCg/UniformParameter>是osgNV哪个版本的???

该用户从未签到

发表于 2008-12-10 11:36:52 | 显示全部楼层
之前见过几个很好的用 Cg的例子,效果很棒。继续开发osgNv真是做了件大好事啊。支持~~

该用户从未签到

 楼主| 发表于 2008-12-10 12:14:57 | 显示全部楼层
原帖由 FlySky 于 2008-12-10 10:53 发表
哈哈哈,,这事你得问问array,,,看看怎么样???

请教一个问题,,,是osgNV哪个版本的???


0.5.6以前的,现在不存在了,直接用LocalParameter来加载uniform数据。

昨天刚刚把cgGLSetTextureParameter封装进去。不过现在面临一个原作者也一直犯愁的问题~~怎样保证Cg着色器只作用于某些节点。例如我有两个Geode节点,其中一个想用Cg语言着色,另一个用普通的OpenGL命令。osgNVCg或StateAttribute的常规方法是做不到的。

Cg要求在渲染物体中这样设置:
cgGLEnableProfile()
draw_cg_objects()
cgGLDisableProfile()
draw_other_objects()

也就是绘制完cg_objects后还要在执行一些Cg函数(cgGLDisableProfile等)来收尾,否则other_objects也会用Cg着色器绘制,这样是不期望的~~
目前我考虑的解决方案有两个:一是使用DrawCallback,但这样必须禁止使用display list(否则DrawCallback只执行一次),得不偿失;二是在OSG核心库中追加一个新的callback,允许在绘制某个几何体结束后再执行些操作,不过不知道Robert答应不答应……

请教一下用过osgNV或者其他OSG+Cg结合的朋友,以前大家是如何处理这种矛盾的?

该用户从未签到

发表于 2009-3-2 09:46:33 | 显示全部楼层

顶一下!

希望学习一下CG

该用户从未签到

发表于 2015-4-12 15:03:48 | 显示全部楼层
不是接过来继续开发了吗?!
怎么看最后更新是在2008年,这项目还继续更新开发吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表