游戏开发论坛

 找回密码
 立即注册
搜索
查看: 6990|回复: 7

计划迁移OPENGL代码到OGRE

[复制链接]

52

主题

155

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2007-1-29 11:37:00 | 显示全部楼层 |阅读模式
我现在开发架构是基于opengl的,现在遇到的问题是公司的项目需要快速开发,可是感觉很多特效支持上,opengl没有,如果自己写太浪费时间。我现在得到的资源是只有NEHE,GAMEDEV那些资源,然后就是使用开源库CEGUI,Lib3ds,freetype,bass,可是你知道使用这些库难免有被库束缚的感觉,很烦。一个很简单的问题,就要跟着一堆lib。而且如果这个库在某些技术特性上有什么问题,那么风险太大了。

可是实在的,要想快速开发,用opengl真的很难.
主要是我不是特别熟悉opengl,一些很高级的主题,也很难涉及啊。
现在感觉是在拿砖块一块块垒。
很希望能得到很成熟的应用,方便的接口,大量的实例,这方面的库。

考虑使用OGRE,但是没有经验,害怕投入了,过分依赖库,又很麻烦。
如果迁移,请教哪位有这些经验分享一下啊?

2万

主题

2万

帖子

6万

积分

论坛元老

Rank: 8Rank: 8

积分
66489
QQ
发表于 2007-1-29 12:04:00 | 显示全部楼层

Re:计划迁移OPENGL代码到OGRE

OGRE也可以基于OpenGL

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2007-1-29 13:10:00 | 显示全部楼层

Re:计划迁移OPENGL代码到OGRE

opengl 和 Directx 3D都属于底层的API,操作都是针对与底层硬件。
而Ogre是图形SDK,属于开发包,你可以针对三维空间的物体直接通过面向对象的方法来操作。

如果你直接用OpenGL些程序的话,可能你已经完成了一个简单得SDK之类的东西,只是可能比Ogre或者虚幻简陋罢了,Ogre的操作也仍然是基于opengl 和 Directx 3D这些底层的API实现,比如你再Ogre的世界空间中放置一个物体,Ogre会把具体的绘制方法翻译成opengl 或者 Directx 3D所熟悉的API命令来操作硬件。

对于库(sdk)的使用,我个人是这种看法,不要重复实现轮子。毕竟那些开源的领导者比我们更专注于某些领域,这些开源的库也被社区的使用者所使用和检验,应该衡量一下自己开发是否确实能带来更多的好处。但一般来说都是否的。(你可以YY那些天才设计师们都给你免费打工)

Ogre是一个库,但Ogre社区已经是一个开源的中心,对CEGUI,freetype,ODE,ois等库已经有良好的支持和使用惯例。你可以直接看到他们的使用例子(拿来改)而不用重新组装(对于一些库比如freetype已经被完全封装,您不用了解任何相关的细节)。

针对您所提出的情况,我有一个建议,你可以看看你擅长C#还是C++,是否要跨平台。
如果觉得C#比较好而且不需要再Win32以外的平台上使用,那么Ogre的C#版本可以考虑(快速开发)。

另外就是有一条捷径,把Ogre的Demo下载下来,里面有一套简单的框架(另外还有一个配合物理引擎的框架),看看哪个Demo有你需要的效果,拿来改改就好了。CEGUI的支持也都封装好了,基本上没有什么而外的工作量。

52

主题

155

帖子

160

积分

注册会员

Rank: 2

积分
160
 楼主| 发表于 2007-1-29 14:51:00 | 显示全部楼层

Re:计划迁移OPENGL代码到OGRE

呵呵,非常感谢,比较喜欢c++,不过C#也可以用的。
嗯,基本的图形部分,资源管理部分觉得没什么问题,有时间就开始吧。

另外问一个简单的问题,项目中有一些windows的消息处理,比如自定义的消息处理,
定时器setTimer, 多线程处理啊,不知道是否容易集成?

193

主题

870

帖子

903

积分

高级会员

Rank: 4

积分
903
QQ
发表于 2007-1-29 17:36:00 | 显示全部楼层

Re:计划迁移OPENGL代码到OGRE

wjk98550328:
torque感觉不好,首先是只支持DirectX3D,
另外不支持动态LoD需要手动添加,
另外最令人觉得遗憾的是,无法正确处理透明纹理,只有官方3d max一个版本的导出插件可以正确导出,而包括Maya以及3D milk等等诸多到处插件对透明纹理导出都有严重的错误,最起码在一年前我们公司使用的时候是这样的,反而我又在负责处理这个部分,用了近一个月时间也找不出所以然,这是一个普遍的问题(在国外也很多人遇到),并不是没有解决方法,但是相当困难,需要重新写导出插件,当时的我是完全应付不了的(很复杂的图形学算法,又没有资料,除了官方导出插件,其他所有用户提供的导出插件都解决不了,重点是当时官防只提供了一个早期版本max的导出插件,而我们公司用的事Maya,3DMilkShape插件的readme重点讲了这个问题,但是本身插件仍然有这个bug,他认为大部分3D几何体应该有一个固定顺序,按照这固定的顺序渲染就可以在任何角度都遵守从后往前的排序,对于那些不遵守这个原则的几何图形,你需要拆分他们到几个小的模型,听起来似乎和bsp之类的分割有一些关系,但凭借我自身的能力是完全搞不清楚地,不过幸好国外那些老外开发导出的人和我一样笨,所以也不算太丢人)。所以最后解决的办法是让美工不要做透明纹理。

hardy_game:
如果要处Windows的消息,那么需要你自己来创建窗口,然后让Ogre在你的窗口渲染.
虽然Ogre提供自动创建窗口功能,但如果那样做就需要把整个窗口的维护工作交给Ogre本身,因为Ogre本身是跨平台的,这时候你就无法得到Win32的平台消息(被封装了),解决这种问题的最好办法是自行创建管理窗口,然户交给Ogre。有些类似3D工具的方法,可以到Ogre官网上看一些资料。
另:如果觉得麻烦,也可以动手修改Ogre引擎本身,虽然这么做不是很地道(升级也不方便),不过简单很多。

52

主题

155

帖子

160

积分

注册会员

Rank: 2

积分
160
 楼主| 发表于 2007-1-30 11:01:00 | 显示全部楼层

Re:计划迁移OPENGL代码到OGRE

嗯,可以试试。
呵呵,版主的技术可真强啊。

14

主题

96

帖子

124

积分

注册会员

Rank: 2

积分
124
QQ
发表于 2007-2-1 21:36:00 | 显示全部楼层

Re:计划迁移OPENGL代码到OGRE

图形API和图形引擎完全不是一回事。。。。。
如若是说DX到OpenGL倒是可以的。。。。
让我汗一个。。。。

2

主题

15

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2010-5-10 16:58:00 | 显示全部楼层

Re:计划迁移OPENGL代码到OGRE

我想问下,如果把opengl写的逻辑转换为ogre的代码,或者说怎么在ogre中使用opengl,是直接使用GLRenderSystem吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-9 19:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表