Articles of 着色器

模糊和灰色着色器

我是着色器新手。 我正在试图结合模糊着色器和灰度着色器。 这是我到目前为止所做的: Shader "Custom/blur_and_gray" { Properties { _Color ("Main Color", Color) = (1,1,1,1) _BumpAmt ("Distortion", Range (0,128)) = 10 _MainTex ("Tint Color (RGB)", 2D) = "white" {} _BumpMap ("Normalmap", 2D) = "bump" {} _Size ("Size", Range(0, 20)) = 1 _MainTex ("Texture", 2D) = "" } Category { // We must be transparent, so other […]

使用溶解着色器以及标准着色器

我正在使用“燃烧”溶解着色器来使用标准着色器的对象。 因为我需要标准着色器以获得更好的照明等,所以我研究了如何使用它们以及如何扩展标准着色器。 根据Unity文档,我可以定义在pragma使用哪种照明模式,所以我使用了Standard 。 这一定不能按我想的方式工作,因为我直接使用标准着色器时看不到任何光线。 我正在使用Harry Alisavakis的着色溶解着色器 Shader "Custom/BurnDissolve" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _SliceGuide("Slice Guide (RGB)", 2D) = "white" {} _SliceAmount("Slice Amount", Range(0.0, 1.0)) = 0 _BurnSize("Burn Size", Range(0.0, 1.0)) = 0.15 _BurnRamp("Burn Ramp (RGB)", 2D) = "white" {} _BurnColor("Burn Color", Color) = (1,1,1,1) […]

调整DirectX样本到SlimDX

我正在学习DirectX和SlimDX,但是我有一个可怕的时间开始。 我正在参加三角教程,并试图添加颜色和转换。 从控制颜色开始,我已经将.fx文件更新为以下内容: cbuffer cbPerObject { float4x4 gWVP; }; struct vsInput { float4 positionLS : POSITION; float4 color : COLOR; }; struct vsOutput { float4 positionCS : POSITION; float4 color : COLOR; }; struct psInput { float4 positionCS : POSITION; float4 color : COLOR; }; vsOutput VShader(vsInput input) { vsOutput output; output.positionCS = input.positionLS; //mul(position, […]

无法使用着色器呈现给FBO

我已经添加了function,以便我可以渲染到帧缓冲(后处理和东西)。 我可以成功渲染到我的帧缓冲区,然后渲染该帧缓冲区,但任何着色器都不会渲染到我的帧缓冲区。 在添加帧缓冲步骤之前,使用相同的着色器进行渲染。 以下是我如何创建我的帧缓冲区: // create the color texture colorBuffer = GL.GenTexture(); GL.BindTexture(TextureTarget.Texture2D, colorBuffer); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba8, width, height, 0, PixelFormat.Rgba, PixelType.UnsignedByte, IntPtr.Zero); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); // create the depth texture depthBuffer = GL.GenTexture(); GL.BindTexture(TextureTarget.Texture2D, depthBuffer); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Depth24Stencil8, width, height, 0, PixelFormat.DepthStencil, PixelType.UnsignedInt, IntPtr.Zero); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); // […]

在XNA的负坐标处绘制?

我正在试图制作2D等距角色扮演游戏,当涉及到照明时,我会碰壁。 我正在考虑使用着色器,如果我设法了解他们。我期望的问题是屏幕外的光源的存在。为了计算阴影等,我仍然需要这些对象呈现,即使他们如果我在地图上移动视图,那么光线会在屏幕外popup。 我正在考虑绘制整个层面,而不是仅仅是看到的东西,但是这意味着绘制在视图坐标之外的负面和外部。这些工作还是我应该寻求一个更好,更有效率的select?

借助于C ++dynamic地改变着色语法

我开始使用可编程stream水线和OpenGL3.0 +的C ++着色器,我希望能够改变一些设置,例如用另一个函数replace一个函数,假设我有一个着色器的操作喜欢 var = A + B 我的目标是用我的C ++程序,也许用一个GUI,随时用其他任何操作replace+ ,但总的来说,用C ++来说,问题是直到现在我才能够在编译之后运行着色器,所以我有一些像静态的方法。 同样的目标适用于我也想通过C ++来改变的variables值。 可以用一个可编程的stream水线? 我对性能不感兴趣,只要C ++能够dynamic地与OpenGL管道进行通信和交换数据。

2D水着色器

我正在尝试构建2D水着色器,并使用Unity,但平台不是问题。 这是我想重现的一个例子: Limbo水着色器 有没有什么好的教程或白皮书可以产生这样的效果模糊和位移? 我不是在谈论波浪什么的,而只是在水的深处。 它是一个相机着色器或对象着色器? 非常感谢 !

当表面法线是(0,1,0)时,如何避免将纹理应用于着色器中的片段?

我有一个顶点着色器和片段着色器的小GLSL着色器。 我想避免将纹理应用于正常等于(0, 1, 0) 。 这可能吗? 这些是我的着色器: 顶点: #version 120 varying vec2 UV; varying vec3 normal; void main() { UV = gl_MultiTexCoord0; gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; normal = gl_Normal; } 分段: #version 120 varying vec2 UV; uniform sampler2D diffuseMap; void main(void) { gl_FragColor = texture(diffuseMap, UV); }

实例渲染速度更快?

在GLSL中使用实例化渲染比做这样的事情更快 for(int i=0; i<10; i++) { glDrawArrays(GL_POINTS, 0, 3000); } 假设我想渲染“草”,这是多次渲染一个几何的最好方法。

Unity的包4浮动

链接到: GLSL包浮动到RGBA纹理 我在Unity中findEncodeFloatRGBA / DecodeFloatRGBA着色器函数https://gist.github.com/hecomi/9580605 现在我试图弄清楚他们是如何工作的。 所以我尝试了C ++ http://coliru.stacked-crooked.com/a/345f8c403d4a78f9 但是我得到了错误的结果。 另外我用Mathematica试过,得到了同样的错误结果。 http://www.sendspace.com/file/qmlu8b 我试图编码{0.1,0.2,0.3,0.4} – 但编码/解码后得到{0.0980392,0.698039,0.79649,0.93266}