对PixelShader生成位图

我有16位灰度数据上,我想提出这样的操作:对于每一个像素:1)计算样本的“下采样16bit-使用RGB(24位LUT 2)店铺样品> 8位 - 每样本8位)的质感 - [R = S ,G = S,B = S

最后我想有,我可以在一个窗口使用数据直接DIB(每个样品RGB无符号短8位)。

我使用OpenGL和GLSL。 由于我是相当新的OpenGL的,我完全失去了。 假设我的硬件支持所有必要的扩展。 我有如下因素的想法:

1)创建RGB纹理(不知道格式都OK):

glTexImage2D(GL_TEXTURE_RECTANGLE_ARB,0,GL_RGB8UI_EXT,textW, textH,0,GL_RGB,GL_UNSIGNED_BYTE,0);

并将其连接到帧缓冲。

2)准备GL_LUMINANCE16UI_EXT质地'G',并把我的数据在那里。 3)准备1D纹理“L”与预先计算的LUT。 4)在pixelshader求x = L [均匀采样超过G]和设置l_FragColor.x = X; l_FragColor.y = X; l_FragColor.z = X;

就是这个想法好不好? 我应该如何创建这些贴图,并显示应实际像素着色器代码的样子(特别是我有采样稍微了解)?

谢谢,鲍尔泰克

分类:OpenGL的 时间:2012-01-01 人气:0
本文关键词: OpenGL的GPGPU,GLSL
分享到:

相关文章

  • 问题视差法线贴图在OpenGL中,GLSL 2012-06-15

    我有视差法线贴图一个可怕的问题,我不知道有什么可以是问题. (OpenGL的2.0,C ++,WINXP) 我的结果: (绿色是法线,蓝色的切线和红色的binormals(bitangents)) 法线贴图工作正常,所以我假定切向量都不错. 奇怪的是,立方体的一些墙壁上,视差贴图做正确而在其他事实并非如此. 我敢肯定,我的GLSL代码是可以的,因为我是从http://www.dhpoware.com/demos/index.html复制它,你可以找到一个工作视差法线贴图演示 - 这在我的电脑上工

  • 下的OpenGL ES 2 GLSL,我怎么能写一个着色器操作的是以前的输出 2015-01-20

    我需要与给定的纹理开始着色器,然后动画的每一帧上操作的着色器以及其他输入的前面的输出. 如何组织的帧缓冲区,使得每个帧有权访问先前帧的输出,而不必到缓冲器移动从CPU来回? --------------解决方案------------- OpenGL ES 2.0的具有帧缓冲对象(宗教组织),有了它,你可以直接渲染到纹理,并且可以使用纹理作为输入你的下一个迭代. 这是这样做的唯一途径. 用两个宗教组织和两个纹理,每一个连接到每个FBO. 阅读从一个纹理和写入到另一个,然后交换的质感,让你从上次写

  • 通过模糊,后期处理着色器去后alpha混合纹理的边界得到黑色(OpenGL中,GLSL) 2012-01-28

    我使用的是FBO渲染场景到纹理,然后我渲染这个贴图使用高斯模糊着色器另一个. 但在那之后,是阿尔法所有面的边框混合得到的黑色. 下面是一些截图(对不起,我是新来的,所以我不能发送图像本身):前...: ..和通过模糊去后(模糊大小设置为0在这种情况下) 这是创建纹理: glGenTextures(1, &render.color_tex); glBindTexture(GL_TEXTURE_2D, render.color_tex); glTexParameterf(GL_TEXTURE_2D,

  • 在OpenGL着色器GLSL颜色逐位位移 2014-03-21

    我传递vec4与XYZ和颜色值的着色器,我试图逐位的色差分量转移到自己的RG和b花车但有问题: 顶点着色器: #version 150 in vec4 position; out vec2 Texcoord; uniform mat4 model; uniform mat4 view; uniform mat4 proj; void main() { Texcoord = vec2(position.w, position.w); gl_Position = proj * view * mode

  • 什么版本的GLSL是用在iPhone(S)? 2012-11-30

    我知道,iPhone使用的OpenGL ES 2.0,但我不知道底层语言GLSL的版本. 它是1.3,1.4,2.0,其他的? 谢谢. --------------解决方案------------- 好吧,我发现我自己,感谢__ __ 版预定义的宏. 所使用的GLSL ES规范是1.0,这是基于GLSL版本1.20. 该OpengGL ES 2.0和GLSL ES 1.0规格可供下载http://www.khronos.org/registry/gles/. printf("GLSL Versi

  • 一辆汽车的OpenGL镶嵌由一个多边形制作 2013-02-09

    IM学习使用OpenGL和IV被告知,因为我车轮拱是凹我要细分它们. 因此,这里是我的前轮拱代码... GLdouble car[7][2] = { {-1.93,0.3}, {-1.95,0.4}, {-2.2,0.6}, {-2.6,0.6}, {-2.82,0.4}, {-2.8,0.3}, {-2.78,0.0} }; GLUtesselator *tess = gluNewTess(); // create a tessellator glEnable(GL_TEXTURE_2D);

  • 纹理与GLSL(在PyOpenGL和pygame的) 2013-06-15

    感到沮丧与固定功能管线在Python正在缓慢后,我开始寻找到着色器吸取我的游戏的视差背景. 但是,我无法找到任何简单的方法来纹理绘制什么顶点. 我现在有个顶点数组,每个都是这样的PyOpenGL顶点缓冲区对象:[X,Y,Z,texX,texY,texID] 我传递这与getAttribLocation / glEnableVertexAttribArray着色器. 我不知道是否行得通,因为着色器目前不编译,但在此之前我说我可能是可怕的质感代码的东西都被工作确定彩色顶点. 我想是绘制纹理模型着色器

  • GLSL光/高亮带摄像头移动 2013-10-28

    VC ++ 2010,OpenGL中,GLSL,SDL 我移动到着色器,并运行与OGL管道的工作,而原先发生的问题. 也就是说,光的位置,似乎在任何方向上我的相机朝向点. 在OGL管道这只是镜面高光,这是可以解决的有: glLightModelf(GL_LIGHT_MODEL_LOCAL_VIEWER, 1.0f); 下面是两种着色器: 顶点 varying vec3 lightDir,normal; void main() { normal = normalize(gl_NormalMatri

  • 渲染与大小> 1024的UIImage与iPhone的OpenGL ES 2.0 2013-12-06

    我捕捉对iPhone 4全分辨率的UIImage(1936X2592) 然后我就扩展到尺寸1936x1936的正方形. 现在我需要把这个图像加载到纹理,让OpenGL的一些GLSL渲染. 问题是OpenGL的只支持2纹理尺寸的权力,只有可达1024. 让我怎么解决这个问题? 谢谢. 编辑:我的问题是无关紧要的,我的目标3GS和起来,它支持2048×2048的图像尺寸. 我的问题是另外一个问题:摄像头帧的UIImage到OpenGL渲染给出了一个奇怪的图像(附后) --------------解决

  • OpenGL ES 2.0的等离子着色器 2014-01-25

    我试着写与OpenGL ES 2.0着色器,这将使2D平面有一个​​像表面的等离子体. 我争取类似的东西在这些简短的视频效果... http://www.youtube.com/watch?v=XM7imVtakZk http://www.youtube.com/watch?v=5NQi45V5Y6o 我不需要正是那种渲染,但总的来说我在找我的渲染2D平面有某种运动​​的等离子体状表面的. 它并不需要看看惊人的,并没有太多与流动性,只是一些有运动,并很好地混合颜色,如视频中的表现. 我需要这个效

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.170 (s). 10 q(s)