小编gen*_*ult的帖子

使用2D和3D上下文的Canvas 3D绘图

由于webgl/opengl不支持文本绘制,因此可以使用3D上下文和使用2D上下文的文本绘制来绘制3D对象?

html5 canvas opengl-es webgl

15
推荐指数
3
解决办法
2万
查看次数

在sqlite中选择范围(1到100)之间的数字

我知道SQL中的一些解决方案,但是从SQlite找不到任何解决方案.

我只想执行一个select查询,返回一个从1到100的数字结果集.

Numbers
  1
  2
  3
  4
  ......
  5
Run Code Online (Sandbox Code Playgroud)

更正:我根本没有桌子.(但是像dualMySQL 这样的虚拟表鼓励使用解决方案)

sqlite

15
推荐指数
3
解决办法
2万
查看次数

适用于Android OpenGL ES的Shader

是否可以在Android应用程序中使用顶点或像素着色器?请举例说明如何设置着色器.

shader android opengl-es

15
推荐指数
1
解决办法
2万
查看次数

像素空间中的OpenGL纹理坐标

我正在开发一款使用OpenGL ES 2进行绘图的iPhone应用程序.我知道通常纹理坐标是在0-1范围内定义的,但理想情况下我想将它们从0-1023(我的TextureAtlas的大小)映射出来以便于阅读.我已经看到了以这种方式定义坐标的示例代码,但是无法确定以前允许这样做的调用.glMatrixMode(GL_TEXTURE)好像它可能涉及,但我不太确定如何实现它.

我的最终目标是完成这样的事情,我在地图册中使用的纹理位于左上角48px的正方形中:

GLshort texcoords[]={
  48,48,
  0,48,
  48,0,
  0,0,
};
glVertexAttribPointer(ATTRIB_TEXTUREPOSITON, 2, GL_SHORT, 0, 0, texcoords);
glEnableVertexAttribArray(ATTRIB_TEXTUREPOSITON);
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch opengl-es objective-c

15
推荐指数
3
解决办法
2万
查看次数

OpenGL的.使用glBufferData更新顶点缓冲区

我正在使用OpenGL某种批量绘图.为此,我创建了一个vertex buffer存储数据.

注意:此缓冲区通常会在每个帧上更新,但永远不会减小大小(但仍然可以增加).

我的问题是:使用glBufferData(用s treaming write-only mode)更新它(而不是例如glMapBuffer)在技​​术上是否正确?我想没有必要映射它,因为更新了完整的数据,所以我只需要立即发送一个完整的数据包.如果当前的缓冲区大小比我发送的少,它会自动增加,不是吗?我现在才确定它的实际工作方式(也许它会在每次调用时重新创建缓冲区,不是吗?).

opengl streaming vertex-buffer

15
推荐指数
2
解决办法
1万
查看次数

Qt 5中的OpenGL与QOpenGL/QtOpenGL:差异和局限?

由于有两种方法可以将OpenGL与Qt 5(QOpenGL/QtOpenGL包装器和常规OpenGL API)一起使用,我想知道每种方法的局限性.有人可以告诉我是否应该注意QOpenGL包装器是否存在限制?

我问这个的原因是因为我不想开始使用QOpenGL包装器并发现我不能使用OpenGL API的全部功能.有没有人有这两方面的经验,可以在功能,性能和易用性方面提供一些提示?

opengl qt qt5

15
推荐指数
1
解决办法
9225
查看次数

如何渲染到GL_TEXTURE_EXTERNAL_OES?

我需要一种渲染到GL_TEXTURE_EXTERNAL_OES纹理的方法.我尝试将纹理绑定到帧缓冲区但我得到了GL_INVALID_ENUM错误.以下是一些示例代码:

glEnable(GL_TEXTURE_EXTERNAL_OES);
glGenFramebuffersOES(1, &frameBuffer);
glBindFramebufferOES(GL_FRAMEBUFFER, frameBuffer); 
glFramebufferTexture2DOES(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_EXTERNAL_OES, outTexHandle, 0); // I get GL_INVALID_ENUM here
// set viewport, uniforms and draw 
glBindFramebufferOES(GL_FRAMEBUFFER, 0);
glDisable(GL_TEXTURE_EXTERNAL_OES);
Run Code Online (Sandbox Code Playgroud)

我的最终目标是通过在SurfaceTexture上应用一些过滤器来修改相机框架.因此,我的着色器程序同时具有输入和输出相同的GL_TEXTURE_EXTERNAL_OES纹理.这可能吗?如果没有,有没有解决方法?对于我的应用程序,输出纹理必须是GL_TEXTURE_EXTERNAL_OES,我不能使用GL_TEXTURE_2D纹理.

opengl-es render-to-texture

15
推荐指数
1
解决办法
2449
查看次数

使用OpenGL ES绘制纹理的最简单方法是什么?

我看到了这个Google IO会话:http://code.google.com/intl/iw/events/io/2009/sessions/WritingRealTimeGamesAndroid.html
他说draw_texture函数速度最快,VBO速度更快.
但我不明白如何使用它(draw_texture方法或VBO方式).

有什么建议吗?

java android opengl-es

14
推荐指数
2
解决办法
9244
查看次数

OpenGL ES 2.0 Shader最佳实践

我一直在寻找OpenGL着色器的例子,我看到了一些不同的风格.一些着色器专门使用内置类型(即gl_Vertex)与应用程序代码和着色器之间传输数据.

一些着色器使用变化类型将数据从顶点传输到片段着色器而不是gl_Position和gl_FragColor.

一些着色器使用前缀'in'和'out'来指定数据传输:

in vec3 vertex;

void main() {
    gl_Position = projection_matrix * modelview_matrix * vec4(vertex, 1.0);
}
Run Code Online (Sandbox Code Playgroud)

...而其他人使用属性:

attribute vec4 vertex_attrib;
attribute vec4 tex_coord_attrib;
attribute vec4 color_attrib;
uniform mat4 mvp_matrix;
uniform mat4 texture_matrix;
varying vec4 frag_color;
varying vec2 tex_coord;

void main(void)
{
  gl_Position = mvp_matrix * vertex_attrib;
  vec4 transformed_tex_coord = texture_matrix * tex_coord_attrib;
  tex_coord = transformed_tex_coord.st / transformed_tex_coord.q;
  frag_color = color_attrib;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,GLES 2.0中编写着色器的首选方法是什么?有最佳实践指南吗?有人可以提供一个顶点和片段着色器的例子,它是"怎样做"的光辉榜样?

谢谢.

shader opengl-es glsl

14
推荐指数
2
解决办法
2万
查看次数

glOrthof和glViewPort之间的区别

在OpenGL-ES上,我对设置之间的区别感到困惑

glOrthof()  
glViewPort()
GLU.gluOrtho2D()
Run Code Online (Sandbox Code Playgroud)

用它的各自参数.因为我相信所有设置的部分你可以看到指定的坐标(宽度,高度).我应该使用哪个?

android 2d opengl-es orthographic

14
推荐指数
1
解决办法
1万
查看次数