Articles of 着色器

有没有人制作过一个类似于像素艺术的着色器?

我发现像素艺术真的很令人高兴, 它有这种清脆,令人满意的完美。 当我有一个想法的时候,我一直在关注一些初学者的像素艺术教程:如果有人做了一个着色器(例如GLSL),那么需要3D场景,并且尽可能使它看起来像是由一个像素艺术家? 反锯齿和阴影的概念应该相对容易执行。 限制你的调色板也是非常简单的。 当然,没有计算机程序可以超越一个伟大的像素艺术家的手工工作,但有没有人曾经尝试过呢? 这个想法是否可能? 有没有使用它的游戏? 有没有(logging)失败的尝试?

为什么我的简单HLSL着色器不工作?

我正在使用Monogame将2D图元绘制到屏幕上。 要做到这一点,而不是像VertexPositionColor那样使用包含的结构,我为2D编写了自己的顶点类。 public struct VertexColor : IPositionable, IVertexType { private static readonly VertexDeclaration Declaration = new VertexDeclaration ( new VertexElement(0, VertexElementFormat.Vector2, VertexElementUsage.Position, 0), new VertexElement(8, VertexElementFormat.Color, VertexElementUsage.Color, 0) ); public VertexColor(Vector2 position, Color color) { Position = position; Color = color; } public Vector2 Position { get; set; } public Color Color { get; set; […]

我怎样才能防止对象面临裁剪其他对象的面孔?

我有一个赤裸的身体,我有一个胸罩在身体,我有一个西装在胸罩。 由于对象不够精确,我得到丑陋的“裁剪”。 有没有一种方法或方法可以防止这种情况? (除了搞乱比例) 就像着色器渲染一个Render-Queue来面对其他人脸…并且总是先呈现…如果呈现的项目已经足够接近。

我该如何延迟着色器?

我的效果是循环,但我需要每个闪光效果之间的延迟。我不想使用C#代码,因为我相信有一个简单的方法来实现着色器延迟。 waitfor 2 second flash effect waitfor 2 second flash effect …. 这是我的着色器: Shader "Smkgames/SwordFlash" { Properties { _MainTex("MainTex",2D) = "white"{} _Color ("Color", Color) = (1,1,1,1) _LineColor ("LineColor", Color) = (1,1,0,1) _Speed ("Speed",Float) = 1 _Thickness ("Thickness", Float) = 4.286548 _LineSeparation ("LineSeparation", Range(0.1, 10)) = 1 _LineRotation ("LineRotation", Range(-180, 180)) = 0 _Numbers ("Numbers", Float […]

OpenGL ES 2.0:计算的立方体顶点法线validation

请问确认一下, 计算出的法线是否正确 ? 我自己计算了它们,但是我的testing方法在OpenGLES 2.0中仍然很奇怪。 顶点是从3D创作应用程序中导出的。 顶点法线是使用matrix叉积来计算的。 顶点和片段着色器是本书的精确副本,所以不应该有错误。 OpenGL中的输出看起来像球体从底部点亮。 此外,它看起来像盒子是从内部可见的,因为顶部总是透明的。 任何想法,哪里可以成为一个问题? 添加: 顶点法线是基于三角形的四边形来计算的。 三角测量是由3D应用程序在内部执行的。 通过调用该应用程序的API调用来生成顶点/索引。 #begin 8 vertices vs 24 v -25.000000 -25.000000 -25.000000 v 25.000000 -25.000000 -25.000000 v -25.000000 25.000000 -25.000000 v 25.000000 25.000000 -25.000000 v -25.000000 -25.000000 25.000000 v 25.000000 -25.000000 25.000000 v -25.000000 25.000000 25.000000 v 25.000000 25.000000 25.000000 #end 8 vertices […]

一些帮助理解和修改2D着色器

我有一个类似的问题,除了我不想使用一维调色板。 我只是想让它显示我select的一种颜色(例如红色)。 我打算用这个作为2D船的“盾牌”效果。 我也想知道它是如何工作的,因为我会第一个承认一般的着色器并不是我最强的套装。 我并不是要求对HLSL进行概述(因为这个主题太广泛了),只是对这个着色器如何工作的解释,以及在2D游戏中实现它的最好方法。 代码示例将是理想的(即使它们是理论上的),但如果答案解释得很好,我可以用简单的旧文本进行管理。 这也是在XNA 4.0中。 提前致谢。

Direct3D11和SharpDX – 如何将模型实例的世界matrix作为input传递给顶点着色器

使用Direct3D11,我试图从与给定的模型的顶点关联的实例缓冲区传递一个matrix到我的顶点着色器,我似乎无法构造我的InputLayout而不抛出exception。 着色器看起来像这样: cbuffer ConstantBuffer : register(b0) { matrix World; matrix View; matrix Projection; } struct VIn { float4 position: POSITION; matrix instance: INSTANCE; float4 color: COLOR; }; struct VOut { float4 position : SV_POSITION; float4 color : COLOR; }; VOut VShader(VIn input) { VOut output; output.position = mul(input.position, input.instance); output.position = mul(output.position, View); output.position = […]

定向闪电

我已经设法得到一个点的工作,但我面临方向性闪电的问题。 Fragment shader uniform vec4 lightColour ; uniform vec3 lightPos ; uniform float lightRadius ; in Vertex { vec3 colour ; vec2 texCoord ; vec3 normal ; vec3 tangent ; vec3 binormal ; vec3 worldPos ; } IN ; void main ( void ) { vec4 diffuse = texture ( diffuseTex , IN . texCoord […]

血液颗粒系统,join颗粒

有谁知道下面的图片中的粒子是如何performance的? 让我解释一下,在粒子join之前,他们似乎只是血滴的简单纹理,周围有一个黑色的边界 ,当它们开始重叠时,边界就会消失,从而产生一个单一的血滴。这种着色器?

着色器 – 颜色混合

我想知道如何以特定的方式混合颜色。 假设我有一个颜色(A)和另一个颜色(B) 。 (B)的输出颜色是(A),但是如果(B)有任何其他颜色,则输出(A)和(B)的混合, 。 我已经尝试了此外,但它没有给出预期的结果。 我已经尝试了乘法混合对于(B)白色值是相当好的,但是对于蓝色(B)和红色(A)颜色是失败的。 任何想法如何做到这一点? 非常感谢。