Hello. This is an excelent work about Vulkan support.
By the way, I have this shader named “bsnes-gamma-ramp.cg” created by Themaister:
/* Author: Themaister License: Public domain */
// Shader that replicates gamma-ramp of bSNES/Higan.
void main_vertex ( float4 position : POSITION, out float4 oPosition : POSITION, uniform float4x4 modelViewProj,
float2 tex : TEXCOORD, out float2 oTex : TEXCOORD ) { oPosition = mul(modelViewProj, position); oTex = tex; }
// Tweakables. const float saturation = 1.0; const float gamma = 1.5; const float luminance = 1.0;
float3 grayscale(float3 col) { // Non-conventional way to do grayscale, // but bSNES uses this as grayscale value. return float3(dot(col, float3(0.3333))); }
float4 main_fragment(float2 tex : TEXCOORD, uniform sampler2D s0 : TEXUNIT0) : COLOR { float3 res = tex2D(s0, tex).xyz; res = lerp(grayscale(res), res, saturation); // Apply saturation res = pow(res, float3(gamma)); // Apply gamma return float4(saturate(res * luminance), 1.0); }
Someone know how convert this into .slang shader?
Thank you!!!