免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zylthinking
打印 上一主题 下一主题

[其他] opengl: 为什么绘图前启用纹理, 完毕后就关闭? [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
11 [报告]
发表于 2012-09-28 12:55 |只看该作者
回复 8# adam_w2


    我现在越来越觉得,OpenGL采用状态机模型应该是对了。

因为OpenGL根本就不需要多状态,他只对显卡负责,不管是硬的软的集成的还是咋地,基本上只有一块显卡吧?即使是两块,也只有一个管理器再管,这些状态可能根本就是硬件状态的一部分……

因此除了正儿八经独占机器(至少是屏幕)的游戏或者实时程序以外,GL其实需要包装了用,或者就是你说的那种牛人了,不过如果遵循几个模式,并且只有一个使用者,状态机模型是没多大问题的。

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
12 [报告]
发表于 2012-09-28 12:56 来自手机 |只看该作者
我正吃饭呢 回去再说 反正也快开始调试了 到时候做几个实验

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
13 [报告]
发表于 2012-09-28 13:05 |只看该作者
记得告诉我结果哦~~

大学毕业本来准备混着GL找个游戏公司上班的,结果游戏公司是找到了,没想到是手机游戏,就此就和GL无缘了,有时间我也想拾起来再玩玩~~

论坛徽章:
11
未羊
日期:2013-12-16 12:45:4615-16赛季CBA联赛之青岛
日期:2016-04-11 19:17:4715-16赛季CBA联赛之广夏
日期:2016-04-06 16:34:012015亚冠之卡尔希纳萨夫
日期:2015-11-10 10:04:522015亚冠之大阪钢巴
日期:2015-07-30 18:29:402015亚冠之城南
日期:2015-06-15 17:56:392015亚冠之卡尔希纳萨夫
日期:2015-05-15 15:19:272015亚冠之山东鲁能
日期:2015-05-14 12:38:13金牛座
日期:2014-12-04 15:34:06子鼠
日期:2014-10-16 13:40:4715-16赛季CBA联赛之八一
日期:2016-07-22 09:41:40
14 [报告]
发表于 2012-09-28 13:44 |只看该作者
starwing83 发表于 2012-09-28 12:55
回复 8# adam_w2


opengl 之于窗口系统, 中间是有一个 render context 概念的, 似乎一个窗口一个, 所有状态都在这里面, 所以, 现在理解只要没人和你并发操作同一个 context, 应该没问题。

论坛徽章:
0
15 [报告]
发表于 2012-09-28 14:58 |只看该作者
1、有开有关是个完整的绘制过程
2、一直开着可能会影响其他的显示

论坛徽章:
0
16 [报告]
发表于 2012-09-28 20:41 |只看该作者
我见过的最好的帖子了,谢谢楼主

论坛徽章:
0
17 [报告]
发表于 2012-09-29 11:50 |只看该作者
状态机的特点就是牵一发动全身,可以类比全局变量。

个人觉得大量使用全局变量的程序不是一般人玩得转的,虽然用全局变量效率较高。

现代的 GPU 硬件和状态机模型也扯不上关系,状态机模型毫无必要。

论坛徽章:
0
18 [报告]
发表于 2012-09-29 14:04 |只看该作者
本帖最后由 gtkmm 于 2012-09-29 14:12 编辑

要么研究下源码吧....
重任交给哪位好呢...


据我对texture的理解是这样的:

硬件上有个东西叫texture访问单元, 可以快速读取显存里面的多维数组.

create texture就是创建这个东西.
bind texture是指明这个东西如何读取显存的. 比如几维, 每次读多少, 是rgba还是rgb什么的. 但这个时候, 此texture还不知道要读哪块显存呢.

tex image这些函数是把数据传送到显卡里, 并以特殊方式存储, 之后和texture联系起来 .

至于哪个enable, 我不知道.. 我晚上找源码看看.
难道不enable, 显存就不通过texture访问单元, 直接以普通方式传给显卡么..


论坛徽章:
0
19 [报告]
发表于 2012-09-29 14:09 |只看该作者
至于为什么不是函数而是大量的全局变量, 也就是状态机,


我的理解是这样的,
显卡上的汇编语言, 没有栈, 因此不能触发函数调用.
但有跳转指令, 也就可以看作调用无参无返回值函数了.

因此, 给这种代码段传递信息, 只好全局变量..
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP