游戏开发论坛

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

请问:在OpenGL中怎么实现巨型纹理的分页加载?

[复制链接]

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2006-10-10 00:08:00 | 显示全部楼层 |阅读模式
我现在要加载的纹理有600兆,如果全部放进纹理缓存肯定吃不消,所以只能用分页动态加载。有没有大虾有这方面的经验或者例子?帮帮小弟吧

27

主题

179

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2006-10-10 00:34:00 | 显示全部楼层

Re:请问:在OpenGL中怎么实现巨型纹理的分页加载?

你需要一个resource management system. 简单的说,就是在一个大地图或者房间组里,离人物最进的自己房间的resource才会被加载。其他的都被卸载。

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2006-10-10 12:51:00 | 显示全部楼层

Re:请问:在OpenGL中怎么实现巨型纹理的分页加载?

是啊,这个基本原理我是知道的。但是有几个问题,最大的问题就是对纹理缓存的操作比较慢,对于这种频繁的纹理定义与删除帧速率跟不上,其次就是多线程的资源分配问题,我在辅线程中定义的纹理,在主线程中加不上,程序没有任何异常,但是贴了纹理的面上什么都没有。

有没有现成的例子让小弟学习一下?我觉得可能是有一些关键性的方法或者优化我不知道

27

主题

179

帖子

259

积分

中级会员

Rank: 3Rank: 3

积分
259
发表于 2006-10-10 12:57:00 | 显示全部楼层

Re:请问:在OpenGL中怎么实现巨型纹理的分页加载?

http://www.gamedev.net/reference/articles/article822.asp
http://www.gamedev.net/reference/articles/article823.asp
http://www.gamedev.net/reference/articles/article824.asp
http://www.gamedev.net/reference/articles/article825.asp
http://www.gamedev.net/reference/articles/article826.asp

(这个是讲 Resource Management的)
http://www.gamedev.net/reference/articles/article827.asp

全部完整的link

1

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2006-10-10 14:42:00 | 显示全部楼层

Re: 请问:在OpenGL中怎么实现巨型纹理的分页加载?

Windows下不能在多个线程中共享一个GL Context。你要在辅助线程中创建Texture就要确保要在主线程里MakeCurrent(NULL,NULL),在辅助线程里MakeCurrent(hDC,hRC),当然也可以在辅助线程创建一个新的GLContext,和主线程的Context共享Texture。

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2006-10-11 00:47:00 | 显示全部楼层

Re:请问:在OpenGL中怎么实现巨型纹理的分页加载?

即使只是在辅助线程中进行glBindTexture和glTexImage2D也需要MakeCurrent吗?

6

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
 楼主| 发表于 2006-10-14 22:32:00 | 显示全部楼层

Re:请问:在OpenGL中怎么实现巨型纹理的分页加载?

怎么实现Texture的共享呢?

1

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2006-10-17 17:15:00 | 显示全部楼层

Re: 请问:在OpenGL中怎么实现巨型纹理的分页加载?

wglShareLists
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-25 15:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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