Articles of 着色器

在XNA中编译着色器时出现错误X3650

我试图转换XBDEV.NET马赛克着色器在我的XNA项目中使用,并遇到麻烦。 编译器错误,因为一半全局。 起初,我尝试更换全局variables,只是在代码中明确写入variables,但是这样会导致输出失败。 接下来,我尝试用float varsreplace所有的一半,但仍然会导致产生的图像。 我从SpriteBatch.Begin()调用效果文件。 有没有办法将这个着色器转换为新的像素着色器约定? 有没有什么好的教程这个话题? 以下是供参考的着色器文件: /*****************************************************************************/ /* File: tiles.fx Details: Modified version of the NVIDIA Composer FX Demo Program 2004 Produces a tiled mosaic effect on the output. Requires: Vertex Shader 1.1 Pixel Shader 2.0 Modified by: bkenwright@xbdev.net (www.xbdev.net) */ /*****************************************************************************/ float4 ClearColor : DIFFUSE = { 0.0f, 0.0f, 0.0f, 1.0f}; […]

LWJGL – OpenGL – 纹理着色

我想用LWJGL创建一个着色器,它所做的就是改变给定纹理的颜色。 例如,我告诉它使用精灵表绘制字母A,然后我可以告诉着色器以某种颜色绘制字母。 你如何做这样的事情,而不需要创建不同的彩色字母精灵表? 着色器任务:只需将所有像素更改为纹理中的某种颜色。 input:颜色,纹理。 输出:它在屏幕上绘制新的彩色纹理。 我如何完成这样的事情?

GPU优化问题:预先计算还是程序?

我正在学习着色器程序,需要一些大方向。 我想给我的激光束添加噪音。 哪个是处理它的最好方法? 我可以预先计算图像并将其传递给着色器。 然后,我可以使用图像来改变不透明度,并通过改变纹理查找的偏移量来轻松地设置烟雾。 我也可以在着色器中产生噪声,并做同样的纹理使用。 避免显卡或相反的I / O通常会更好吗?

Opengl绑定着色器vs绑定缓冲区的性能

对于一个opengl专家来说,快速的问题,我正在建立一个渲染队列,可以减less着色器绑定的数量或顶点缓冲区绑定的数量。 我只是想知道哪一个更新的graphics卡(IE)(opengl> = 3.2)更昂贵?

OpenGL RTT FrameBuffer问题,并在采样时渲染纹理

我需要做什么: 模糊选定的纹理,并将纹理传递给另一个效果进行后期处理。 请注意,我想要一个纹理通过。 我如何做到这一点: 绑定FBO(纹理被模糊附加为颜色缓冲区) 更改FBO视口大小以匹配纹理大小 启用着色器 绑定纹理 使用纹理渲染视口大小的四边形,并通过FBO色彩缓冲区输出到该纹理 解开纹理 禁用着色器 禁用fbo … 将该纹理传递给另一个效果。 我已经做了什么: 附带ColorBuffer的FBO(我想模糊的纹理), 着色器 所有其他reqd的东西.. 有什么问题? 当我想要模糊纹理,并将纹理作为颜色缓冲区绑定到我的FBO,然后在渲染样本(和模糊)的同时将纹理通过统一传递给着色器时,结果不会被存储。 看起来像FBO不能有相同的纹理存储为输出,并在同一时间采样(这种可以理解的)。 题: 这是正常的行为? 我如何处理“模糊选定的纹理”,以便我可以传递一个纹理到另一个效果来处理它? 我可以想象FBO呈现的效果类中的“虚拟”纹理,然后将其复制到请求修改的纹理。任何更好的选项? 谢谢你在这一点上,我想我需要一些在这里的逻辑帮助。

在OpenGL Shader中,为什么添加颜色改变顶点位置?

我有以下顶点着色器: #version 120 attribute vec4 position; attribute vec4 acolor; varying vec4 theColor; void main(){ gl_Position = position; //theColor = acolor; //[1] theColor = vec4(1.0,0.0,0.0,1.0); //[2] } 当我使用line [1]时,颜色被传送到片段着色器,但是当我将颜色更改为属性acolor (使用[2]行)时,三角形的位置显示错误。 从主程序的数据来看,我似乎喜欢位置获取颜色值。 我把两个图像, 1与顶点的立场位置和2与错误的顶点位置。 更新 :在Github上呈现代码

是否有着色器或至less在Swing中着色?

在那儿? 因为我想知道它是否支持GLSL,HLSL或它自己的着色语言? 我不太了解Swinggraphics。 有人知道吗?

着色器注册不同的graphics卡

标题不是很明确,所以我会尽量让自己清楚。 我有两个“工作”(我工作)个人电脑:一个运行NVIDIA GT440笔记本电脑与RADEON HD 4650.我有一个着色器的多通道渲染使用POSITION0和POSITION1寄存器的顶点着色器输出: struct VS_OUT { float4 Position : POSITION0; float4 WorldPosition : POSITION1; // More variables for normal mapping and more }; 这个代码在我的桌面上工作得很好,但是当我在我的笔记本电脑上运行它时,渲染被搞砸了。 我终于追查到POSITION1输出参数的问题,如果我将其更改为TEXCOORD0它的工作原理。 现在…我不喜欢做我不明白的事情,所以我想明白为什么会发生。 这当然是与GPU相关的,但是如果你能够把我的一些论文,文章或者任何解释寄存器工作原理的东西连接起来,那么我会很高兴,甚至为什么……甚至是关于可编程管道的东西。 感谢您的时间和快乐的编码!

在GL中使用着色器绘制3D以上的HUD

在过去,您只需在投影中做glOrtho ,重置Modelview-Matrix并绘制[-1,1],[-1,1],0 。 但是现在我们有着色器,我想避免使用matrix。 我的代码到目前为止: #version 130 uniform float sizeX; uniform float sizeY; in vec2 position; in vec2 coord; out vec2 texcoord; void main() { gl_Position = vec4(position.x * sizeX, position.y * sizeY, 0, 1); texcoord = coord; } 为什么这不起作用? 如果我用这个来代替: gl_Position = ftransform(); HUD是可见的。

HLSL像素着色器编译,stream程控制,指令计数,XNA问题

即时通讯试图find一个问题,即将从XNA 3.1框架到XNA 4.0的帮助。 我为2D游戏编写的着色器在XNA 3.1 中工作良好,但是在4.0中甚至不能编译。 起初,我得到了疯狂的巨大的指令计数消息,但我把它转换成编译优化,这减less了,但仍然超过了限制。 FXC.exe编译它们很好,但XNA 4.0不会。 我对HLSL并不十分精通,可以使用一些技巧来做什么,而不必重新devise一切。 我尝试了一些不同的方法,[循环]属性等,结果混杂。 首先在这里是其中的一个问题: float4 GetLightColor(float2 position) { float4 color; position += lightOffset; // Offset position // Figure out which texture this position is in, then return // The color in that texture if(position.x <= (LightSize1.x + LightSize1.z)) { // Top left or bottom left if(position.y <= […]