同步操作将从 鱼米三香/Golang_OpenGL_dev 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#Golang_OpenGL_dev
###写在前面 学Golang断断续续也有一段时间了,一直想写个gui程序,找到了go-ui这个库,写ui很简单,但是又发现无法做OpenGL,于是又找到了go-glfw,发现与OpenGL教程什么写的非常匹配,除了个别c++和Golang之间的细微差别,其他没有什么特别多的问题,同时也参考了go-glfw的examples,当然例子里面的图形比较复杂并且也使用了图片纹理(texture),我提取了其中编译绑定着色器的函数封装_compileShader.go_,并且将顶点着色器和像素着色器分离到单独的文件中(fragmentShader.fs和vertexShader.vs)。
###2016年9月26日21:03:42
发现了第一个坑,可能是Golang或是OpenGL基础的问题,问题出现在使用gl.DrawElements
绘制索引缓冲对象的最后一个参数是gl.PtrOffset
类型的,需要用强制类型转换,因为Golang的指针偏移是一个专用类型,在c或是c++是int类型
###2016年9月27日21:37:48
用gl.DrawElements
画图时可以使用最后一个参数指定偏移量,这个偏移量是相对于索引缓冲对象的起始位置的,起始位置为0
,偏移量单位是byte
,一般是3*4的倍数。使用偏移量可以和第二个参数count int32
配合指定所要画的图形。
###2016年9月28日09:01:06
开始系统学习GLSL,现在简单理解顶点着色器是接受顶点数据,转换或者重新排列顶点位置信息、颜色和其他信息的处理程序,可以通过in
关键字定义OpenGL输入的顶点属性,gl_Position
这个内置变量会把位置输出到正式的设备坐标上。而像素着色器则是对每一个顶点的颜色信息作处理然后输出到正式的像素颜色上面。
###2016年10月11日08:57:32
发现在Sublime Text中有一个GLSL插件可以给.fs``.vs
等文件高亮语法显示,我看教程介绍可以把着色器程序直接放在程序中以字符串形式调用,但是我还是准备设计一下把着色器放在的单独的文件之中,但是一个文件里面可以放多个着色器代码,用特殊的注释符号分割开,调用的时候只需要load(shaderName)
就可以了这样就会方便很多
###现阶段屏幕截图
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。