Get it on Google Play


Wm뮤 :: 'Unity/shader' 카테고리의 글 목록 (2 Page)

블로그 이미지
가끔 그림그리거나 3D모델링하거나
취미로 로봇만드는
전자과 게임프로그래머 (퇴사함)
2022.3.22f1 주로 사용
모카쨩
@Ahzkwid

Recent Comment

Archive


2022. 1. 10. 16:17

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2022. 1. 7. 11:29

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2021. 12. 29. 23:34 Unity/shader

 

 

 

https://www.shadertoy.com/view/4djSRW

 

Shadertoy

 

www.shadertoy.com

더보기

hashOld12의 패턴

float hashOld12(float2 p)
{
    return sin(dot(p, float2(100, 100)));
}

 

 

 

hash12의 패턴

float hash12(float2 p)
{
    float3 p3 = sin(float3(p.xyx) );
    p3 += dot(p3, p3.yzx );
    return sin((p3.x + p3.y) * p3.z);
}

편향랜덤이라서 안 쓰는게 좋을듯

 

 

 

 

 

 

 

 

 

noise(floatM|halfM|min10floatM|min16floatM)

'Unity > shader' 카테고리의 다른 글

유니티 Compute Shader  (0) 2022.01.07
유니티 코드없이 Invisible 사용하기 (마스크 거꾸로 사용)  (0) 2021.08.17
Depth 쉐이더  (0) 2021.06.12
posted by 모카쨩
2021. 8. 17. 16:35 Unity/shader

마테리얼을 다음처럼 설정하고

 

 

0,1,2

 

 

 

6,1,0

 

 InvisibleTarget에 스프라이트를 넣고 Invisible로 지우면 된다

Invisible이 먼저 와야한다

Stencil ID는 서로 동일해야한다

 

 

 

 

 

스텐실

 

 

'Unity > shader' 카테고리의 다른 글

랜덤 쉐이더  (0) 2021.12.29
Depth 쉐이더  (0) 2021.06.12
유니티 쉐이더 기초  (0) 2021.04.17
posted by 모카쨩
2021. 6. 12. 01:08

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2021. 4. 17. 19:41 Unity/shader

유니티 셰이더는 HLSL임

 

 

 

실수형

 

float

-고정밀 

-32비트

 

half

-중정밀

-16비트

-범위 : -60,000 ~ +60,000

-정밀도 : 십진숫자 약 3개

 

fixed

-저정밀

-11비트

-범위 : -2.0 ~ +2.0

-정밀도 : 1/256

 

 

 

정수형

int

 

 

 

fixed4 타입 선언

 

fixed4 col = fixed4(0,0,0,0);

 

 

전부 잘 작동

for

break

switch

continue

 

 

 

 

 

 

 

 

Fixed Function Shader 샘플

Shader "Ahzkwid/UnlitCullFont" {
    Properties {
        _MainTex ("MainTex", 2D) = "white" {}
        _Color ("Main Color", Color) = (1,1,1,0)
        _Stencil_Ref ("Stencil_Ref", int) = 1
    }
    SubShader {
        Tags { 
        "RenderType"="Opaque" 
        "Queue"="Geometry+3000"
        }

        Cull front
        //ZTest Always

        Pass{
        	blend srcalpha oneminussrcalpha
	        SetTexture [_MainTex] 
	        {
	        	ConstantColor [_Color]
	        	//Combine texture
	        	//Combine texture lerp(texture) constant
                //Combine texture* primary DOUBLE, texture* constant
                Combine texture* primary
                Combine previous* constant
	        }

        }

    } 
}

 

 

 

 

 

'Unity > shader' 카테고리의 다른 글

Depth 쉐이더  (0) 2021.06.12
유니티 쉐이더 게임 관련  (0) 2021.04.17
모션블러 종류  (1) 2021.03.02
posted by 모카쨩
2021. 4. 17. 19:19 Unity/shader

 

 

 


#define _BoardSize 8.0

int2 GetPiecePos(float2 _pos)
{
    return int2(min(_BoardSize-1, _pos.x * _BoardSize), min(_BoardSize-1, _pos.y * _BoardSize));
}
fixed2 GetUvPos(int2 _pos)
{
   return fixed2((half)_pos.x / _BoardSize + (0.5 / _BoardSize), (half)_pos.y / _BoardSize + (0.5 / _BoardSize));
}


int2 piecePos = GetPiecePos(i.uv);
fixed2 uvPos = GetUvPos(piecePos);
col.r = uvPos.x * 0.1;
col.g = uvPos.y * 0.1;
col.a = 1;
return col;

결과

 

 

 

#define _BoardSize 8.0

int2 GetPiecePos(float2 _pos)
{
    return int2(min(_BoardSize-1, _pos.x * _BoardSize), min(_BoardSize-1, _pos.y * _BoardSize));
}
            
int2 LenPos(int len, int angle)
{

    int2 _pos = int2(0, 0);
    switch (angle)
    {
    case 0:
        _pos.x = len;
        _pos.y = 0;
        break;
    case 45:
        _pos.x = len;
        _pos.y = len;
        break;
    case 90:
        _pos.x = 0;
        _pos.y = len;
        break;
    case 135:
        _pos.x = -len;
        _pos.y = len;
        break;
    case 180:
        _pos.x = -len;
        _pos.y = 0;
        break;
    case 225:
        _pos.x = -len;
        _pos.y = -len;
        break;
    case 270:
        _pos.x = 0;
        _pos.y = -len;
        break;
    case 315:
        _pos.x = len;
        _pos.y = -len;
        break;
    }
    return _pos;
}



int2 piecePos = GetPiecePos(i.uv);

int angle = piecePos.y * 45;
col.r = 0.5+(float2)LenPos(piecePos.x, angle).x * 0.05;
col.g = 0.5 + (float2)LenPos(piecePos.x, angle).y * 0.05;
col.b = 0.5;
col.a = 1;
return col;

결과

아름다운 무지개가 나왔다

Hue가 어째서 360도의 각도를 지니는지 알수있는 부분

 


int2 LenPos(int len, int angle)
{

    int2 _pos = int2(0, 0);
    if (angle == 0)
    {
        _pos.x = len;
        _pos.y = 0;
    }
    else if (angle == 45)
    {
        _pos.x = len;
        _pos.y = len;
    }
    else if (angle == 90)
    {
        _pos.x = 0;
        _pos.y = len;
    }
    else if (angle == 135)
    {
        _pos.x = -len;
        _pos.y = len;
    }
    else if (angle == 180)
    {
        _pos.x = -len;
        _pos.y = 0;
    }
    else if (angle == 225)
    {
        _pos.x = -len;
        _pos.y = -len;
    }
    else if (angle == 270)
    {
        _pos.x = 0;
        _pos.y = -len;
    }
    else if (angle == 315)
    {
        _pos.x = len;
        _pos.y = -len;
    }
    return _pos;
}

if버전

 

 

 

 

 

'Unity > shader' 카테고리의 다른 글

유니티 쉐이더 기초  (0) 2021.04.17
모션블러 종류  (1) 2021.03.02
유니티 쉐이더 인스펙터  (0) 2021.02.21
posted by 모카쨩
2021. 3. 2. 00:02 Unity/shader

1.이전화면 프레임을 남기는 방식

=초당프레임을 충분히 올리지 않으면 잔상현상이 생김

따라서 처리량대비 성능이 안 좋음

 

2. 화면내에서의 각속도와 이동속도를 가져와서 쉐이더에서 블러처리를 적용

=위화감이 생기지만 1번에 비해 가벼움

 

3.이전 프레임과 비교하여 변형된 부분에 블러를 적용

=가볍고 빠르지만 현실적이진 않고 눈속임정도

 

4. MSAA처럼 메쉬 가장자리에만 블러를 적용

=경량이지만 후짐

 

 

근데 24년기준 144hz 250hz 모니터가 일상화됨에 따라

모션블러는 60hz라는 한정된 프레임속에서 자연스러움을 구현하려고 했던 과도기적인 구식기술이 되었다

'Unity > shader' 카테고리의 다른 글

유니티 쉐이더 게임 관련  (0) 2021.04.17
유니티 쉐이더 인스펙터  (0) 2021.02.21
스텐실  (0) 2021.01.20
posted by 모카쨩

저사양 유저용 블로그 진입