1. VBO 的 target 是 GL_ARRAY_BUFFER
不是 GL_VERTEX_BUFFER
2. glUniform()用来给uniform传变量
别用成 glProgramUniform()
3. 下载个 vs2019 的 glsl 高亮插件!就在vs的扩展里能搜到!不然太痛苦了!
4. 用 glEnableVertexAttribArray() 而不是用 glEnableVertexArrayAttrib()
opengl API发明人脑子不知道咋长的、起这么多混乱而没什么意义的名字
5. 用 glBufferData() 配合 glBufferSubData() 可以实现把同类型的数据连续排布起来的效果!十分实用!
而 learn opengl 教程里往往都是交错排布的数据、不灵活、而且用 VertexAttribPointer指定时更容易出错!
6. 一定要复用前面写过的代码、shader、封装好的类、程序框架、每次做新的功能都应该从半途开始做
如果次次都从头写起那人会疯的、这样还不如用引擎
7. std::vector 在内存不是连续的!而是稳定占16个byte!
千万不能在 glBufferData() 传数据的时候直接传个vector进去、那样必错!
这个bug卡了我两个小时。
正确做法是用std::copy把vector的内容复制到一个数组里
(其实准备数据的时候用原生数组能省去这一步,但关键是很容易越界。有时候为了方便还是借用一下vector)
8. 没事不要在控制台打印大批量数据、这样会阻塞程序!std::cout 看上去人畜无害、实际上打印的很慢的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探