使用GLSL进行纹理处理(在PyOpenGL和Pygame中)

weixin_38056491 2019-09-12 12:46:15
在对Python中的固定功能管道感到沮丧之后,我开始研究着色器来绘制我的游戏的视差背景.但是,我找不到任何简单的方法来纹理绘制哪些顶点. 我目前有一个PyOpenGL顶点缓冲对象,顶点数组如下:[x,y,z,texX,texY,texID] 我用getAttribLocation / glEnableVertexAttribArray将它们传递给着色器.我不确定它是否有效,因为着色器当前没有编译,但在我添加可能很糟糕的纹理代码之前,事情已经正常用彩色顶点. 我想要的是使用着色器绘制纹理模型,具有多个纹理,但模型是平坦的背景.它是一个大的(1600×800左右)图像,分为256×256纹理和四边形多边形. (旁边的问题:拥有更多的小多边形是否更好,因此多边形的多边形在屏幕外或大多边形,以便减少纹理绑定?) 因为它是多个相关的纹理,我想在着色器中完成所有这一切,而不必为CPU上的每个块绑定纹理,所以我认为发送带有顶点数据的纹理数据是最好的,但我无法得到它工作. 有人可以给我一个简单的例子,顶点和片段着色器相互作用,使多个多边形与不同的纹理? 编辑:着色器,vbo和这里的东西:http://pastebin.com/3LaYiyvh着色器现在编译,但三角形是不可见的. EDITEDIT:到了!不确定最终破解了什么,但这是程序:http://pastebin.com/k87sfiEf我认为它就像是,只要你在开始时绑定所有纹理,着色器就可以在它们之间进行交换.但我不确定.另外值得注意的是,由于在绘制时交换纹理,将大背景分割成较小的块是一个坏主意.浪费空间的大纹理很好,地图集更好!
...全文
119 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38077891 2019-09-12
  • 打赏
  • 举报
回复
After getting frustrated with the fixed-function pipeline being slow in Python, I started looking into shaders to draw my game’s parallax backgrounds. 如果固定功能很慢,使用着色器不会使它更快. 可能你只是做了一些根本错误的事情,比如使用立即模式,或者根本没有硬件加速(由于缺少正确安装的驱动程序或类似的).

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧