Shader Laboratory
843 subscribers
265 photos
15 videos
59 files
404 links
Shader Laboratory
a channel about shaders in telegram

ID : @smkgames

MyStack : goo.gl/smMuqe 😎👌
Download Telegram
Forwarded from Kamali
این یک تکنیک برای جریان آب یا هر چیز دیگه میتونه استفاده بشه.
من تو یک پروژه ازش به عنوان انیمیشن fake استفاده کردم.
و در جای دیگه ازش برای افکت گرما (Heat Distortion)

https://gamedev.stackexchange.com/questions/153965/how-can-i-replicate-quantum-breaks-distortion-particle-effect/153966#153966
Forwarded from SaL
یعنی میشه باهاش قطرات باران که مثل کرم روی صفحه نمایش میان پایین رو درست کرد؟🤔
Forwarded from Kamali
شما خودتون هم می تونید چنین چیزی بسازید
Forwarded from Kamali
باید با استفاده از رندر تکسچر ، uv coordinate رو distort کنید
تو شیدرتوی معادل رندر تکسچر همون بافر ها هستند که باهاش می تونید هر چیزی رو ذخیره کنید که بعداً ازش استفاده کنید
Forwarded from Shader Laboratory
برای ساخت فلو مپ یک uv coodinate لازم داریم
Forwarded from Kamali
بعد تو فتوشاپ با استفاده از smudge tool می تونید distortion به uv coordinate بدید
Forwarded from Shader Laboratory
Forwarded from Shader Laboratory
Forwarded from Shader Laboratory
Unity LineRenderer custom reapeted Texture with margin
Hello Compute Shader Unity:
#pragma kernel TesterKernel

RWTexture2D<float4> Result;

[numthreads(8, 8, 1)]
void TesterKernel(uint2 id : SV_DispatchThreadID)
{
float2 iResolution=float2(1024,1024); //texture resolution
Result[id] = float4(id/iResolution,0,1);
}
using UnityEngine;

[ExecuteInEditMode]
public class Test : MonoBehaviour
{
[SerializeField] ComputeShader _compute;

RenderTexture _buffer;

const int kSize = 512;

void OnDestroy()
{
if (_buffer != null)
if (Application.isPlaying)
Destroy(_buffer);
else
DestroyImmediate(_buffer);
}

void OnRenderImage(RenderTexture source, RenderTexture destination)
{
if (_buffer == null)
{
_buffer = new RenderTexture(kSize, kSize, 0);
_buffer.enableRandomWrite = true;
_buffer.filterMode = FilterMode.Point;
_buffer.hideFlags = HideFlags.DontSave;
_buffer.Create();
}

var kernel = _compute.FindKernel("TesterKernel");
_compute.SetTexture(kernel, "Result", _buffer);
_compute.Dispatch(kernel, kSize / 8, kSize / 8, 1);

Graphics.Blit(_buffer, destination);
}
}
#pragma kernel TesterKernel

RWTexture2D<float4> Result;

float4 drawline(float2 uv)
{
float Thickness = 0.02;
float LineSideA = step((uv.x+Thickness)+uv.y,0.5);
float LineSideB = step((uv.x-Thickness)+uv.y,0.5);
return float4(1,1,1,1)*LineSideB-LineSideA;
}

[numthreads(8, 8, 1)]
void TesterKernel(uint2 id : SV_DispatchThreadID)
{
float2 iResolution=float2(1024,1024); //texture resolution
Result[id] = drawline(id/iResolution);
}
Forwarded from Mostafa
سلام
یه سوال داشتم
چرا میگن تو نوشتن شیدر بهتره که از if استفاده نشه؟
Forwarded from Kamali
سلام چون باعث میشه GPU به صورت موازی عمل نکنه!