Get it on Google Play


Wm뮤 :: '분류 전체보기' 카테고리의 글 목록 (31 Page)

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

Recent Comment

Archive


'전체보기'에 해당되는 글 1019건

  1. 2022.01.13 Decal Shader
  2. 2022.01.12 잉크스케이프 사용법
  3. 2022.01.12 shader pixel broken
  4. 2022.01.12 파이어알파카 사용법
  5. 2022.01.11 깃허브 이슈관련
  6. 2022.01.10 유니티 쉐이더 밉맵
  7. 2022.01.07 유니티 Compute Shader
  8. 2022.01.04 서브스탠스 페인터 주름
2022. 1. 13. 11:06 Unity/shader

 

 

 

 

스티커 쉐이더

팀포의 스프레이 같은걸 생각하면 된다

 

 

-프로젝터 기법

간단하면서 확실한 기법이다

장점

  -레이어 구분 가능

  -육안으로 적용된 지역 파악이 쉬움

  -높은 호환성 (기본컴포넌트니까)

  -Orthographic전환이 간편

단점

  -깊이가 너무 깊은면에 투과하는 문제

  -후면 비침문제

더보기

 

 

 스탠다드 에셋에서 프로젝터 쉐이더를 불러와야 하지만 스탠다드 에셋 지원이 끊겼다

 에셋스토어에서 잘 불러오거나 수동으로 만들자

 

 

 

 

 

Standard Assets\Effects\Projectors\Shaders\ProjectorLight.shader

// Upgrade NOTE: replaced '_Projector' with 'unity_Projector'
// Upgrade NOTE: replaced '_ProjectorClip' with 'unity_ProjectorClip'

Shader "Projector/Light" {
	Properties{
		_Color("Main Color", Color) = (1,1,1,1)
		_ShadowTex("Cookie", 2D) = "" {}
		_FalloffTex("FallOff", 2D) = "" {}
	}

		Subshader{
			Tags {"Queue" = "Transparent"}
			Pass {
				ZWrite Off
				ColorMask RGB
				Blend DstColor One
				Offset -1, -1

				CGPROGRAM
				#pragma vertex vert
				#pragma fragment frag
				#pragma multi_compile_fog
				#include "UnityCG.cginc"

				struct v2f {
					float4 uvShadow : TEXCOORD0;
					float4 uvFalloff : TEXCOORD1;
					UNITY_FOG_COORDS(2)
					float4 pos : SV_POSITION;
				};

				float4x4 unity_Projector;
				float4x4 unity_ProjectorClip;

				v2f vert(float4 vertex : POSITION)
				{
					v2f o;
					o.pos = UnityObjectToClipPos(vertex);
					o.uvShadow = mul(unity_Projector, vertex);
					o.uvFalloff = mul(unity_ProjectorClip, vertex);
					UNITY_TRANSFER_FOG(o,o.pos);
					return o;
				}

				fixed4 _Color;
				sampler2D _ShadowTex;
				sampler2D _FalloffTex;

				fixed4 frag(v2f i) : SV_Target
				{
					fixed4 texS = tex2Dproj(_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
					texS.rgb *= _Color.rgb;
					texS.a = 1.0 - texS.a;

					fixed4 texF = tex2Dproj(_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff));
					fixed4 res = texS * texF.a;

					UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(0,0,0,0));
					return res;
				}
				ENDCG
			}
	}
}

 

 

Standard Assets\Effects\Projectors\Shaders\ProjectorMultiply.shader

// Upgrade NOTE: replaced '_Projector' with 'unity_Projector'
// Upgrade NOTE: replaced '_ProjectorClip' with 'unity_ProjectorClip'

Shader "Projector/Multiply" {
	Properties{
		_ShadowTex("Cookie", 2D) = "gray" {}
		_FalloffTex("FallOff", 2D) = "white" {}
	}
		Subshader{
			Tags {"Queue" = "Transparent"}
			Pass {
				ZWrite Off
				ColorMask RGB
				Blend DstColor Zero
				Offset -1, -1
		 
				CGPROGRAM
				#pragma vertex vert
				#pragma fragment frag
				#pragma multi_compile_fog
				#include "UnityCG.cginc"

				struct v2f {
					float4 uvShadow : TEXCOORD0;
					float4 uvFalloff : TEXCOORD1;
					UNITY_FOG_COORDS(2)
					float4 pos : SV_POSITION;
				};

				float4x4 unity_Projector;
				float4x4 unity_ProjectorClip;

				v2f vert(float4 vertex : POSITION)
				{
					v2f o;
					o.pos = UnityObjectToClipPos(vertex);
					o.uvShadow = mul(unity_Projector, vertex);
					o.uvFalloff = mul(unity_ProjectorClip, vertex);
					UNITY_TRANSFER_FOG(o,o.pos);
					return o;
				}

				sampler2D _ShadowTex;
				sampler2D _FalloffTex;

				fixed4 frag(v2f i) : SV_Target
				{
					fixed4 texS = tex2Dproj(_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
					texS.a = 1.0 - texS.a;

					fixed4 texF = tex2Dproj(_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff));
					fixed4 res = lerp(fixed4(1,1,1,0), texS, texF.a);

					UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(1,1,1,1));
					return res;
				}
				ENDCG
			}
	}
}

 

Shader error in 'ProjectorMultiply': Parse error: syntax error, unexpected '-', expecting TVAL_VARREF or TVAL_NUMBER at line 15

문제가 발생하면 해당영역의 '-'글자를 수동으로 쳐주자

 

 

 

Cookie부분이 _MainTex와 동등한부분이다

 

 

아까만든 프로젝터에 마테리얼을 할당한다

 

 

그리고 투사하면...

 

 

 

개박살난다

 

표시영역보다 메쉬가 크면 나머지를 WrapMode에 따라 배치하기 때문

 

 

가장자리를 흰색으로 처리하는 방법

 

 WrapMode를 Clamp로 바꿔주자


이러면 이렇게 가장자리가 늘어지게 되는데 가장자리를 흰색으로 처리해준다

 

 

 

 

 

쉐이더를 수정하는 방법

fixed4 uv = UNITY_PROJ_COORD(i.uvShadow);
fixed4 texS = tex2Dproj(_ShadowTex, uv);
texS.a = 1.0 - texS.a;
if (!all(uv.xy==saturate(uv.xy)))
{
    texS.rgb = 1;
}

위 코드를 texS에 적용시킨다

 

 

적용된 모습

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

함수 그래프 모음  (0) 2022.01.15
shader pixel broken  (0) 2022.01.12
유니티 쉐이더 밉맵  (0) 2022.01.10
posted by 모카쨩
2022. 1. 12. 13:38 그림기술

 

 

 

무료 벡터편집 소프트웨어이다

일러스트 레이터 무료판정도 생각하면 될듯

 

 

 

설치법

더보기

 

 

 

 

 

 

 

 

 

벡터도형그리기

더보기

 

 

드래그를 하면 곡선이 되고

컨트롤을 누른채로 그리면 각도스냅이 된다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'그림기술' 카테고리의 다른 글

클스 브러쉬 만들기  (0) 2024.04.05
파이어알파카 사용법  (0) 2022.01.12
Live2D 중요기능  (2) 2018.01.06
posted by 모카쨩
2022. 1. 12. 12:32 Unity/shader

 

 

 

쉐이더 픽셀 깨짐현상

 

계산시 색이 바뀌는 구간에서 전혀 다른색이 들어가는 현상이다

각종 보간효과들이 들어가면서 발생하는 현상이다

 

 

사용된 연산식은 이렇다


int _BoardSize = 8;
float2 uv = (floor(i.uv * _BoardSize) + 0.5) / _BoardSize;
col= tex2D(_MainTex, uv);

 

보간효과들을 꺼주면 된다

둘중하나라도 켜져있으면 발생하니 주의

 

 

 

 

 

 

 

수정된모습

 

 

밉맵이야 그렇다 쳐도 Bilinear연산이 빠지는건 타격이 꽤 크다

경우에 따라 밉맵만 꺼도 티가 잘 안나는 경우가 있으니 상황에 따라 맞게 사용할것

 

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

Decal Shader  (0) 2022.01.13
유니티 쉐이더 밉맵  (0) 2022.01.10
유니티 Compute Shader  (0) 2022.01.07
posted by 모카쨩
2022. 1. 12. 10:49 그림기술

 

 

 

 

회전

 

더보기

 

 

 

 

좌우반전

'그림기술' 카테고리의 다른 글

잉크스케이프 사용법  (0) 2022.01.12
Live2D 중요기능  (2) 2018.01.06
클스기초2-기본도구  (0) 2017.07.07
posted by 모카쨩
2022. 1. 11. 01:25 깃허브

 

 

 

 

 

이슈에 커밋해시 붙여넣는법

더보기

커밋에 우클릭후 SHA를 복사해서 붙여넣으면 된다

'깃허브' 카테고리의 다른 글

소스트리 사용법  (0) 2022.02.19
unable to restore stash when changes are present on your branch  (0) 2021.11.22
깃허브 머지 충돌 대응법  (0) 2021.11.03
posted by 모카쨩
2022. 1. 10. 16:17

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

2022. 1. 7. 11:29

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

2022. 1. 4. 22:59 서브스탠스 페인터

 

 

 

 

 

베이직 소프트로 주름이 들어갈 부분에 그어준다

눈에 띄는 색으로 하고 Height의 강도를 설정해준다

 

 

 

 

Add bitmap mask를 선택하고 creased를 선택해준다

 

 

 

 

 

만든 마스크를 선택후 스케일을 조정해준다

너무 낮으면 보이지 않고 너무 높으면 패턴화가 도드라진다.

적절히 맞춰주자

 

 

 

 

 

 

마지막으로 Disable을 선택해주면 normal과 height만 남게된다

 

 

Laser Impact 파티클, Blur필터 등으로 정교하게 칠해준다

 

 

 

 

주름에 방향성이 있기때문에 레이어를 복제해서 90도 회전시켜주는것도 방법이다

대신 2배나 주름이 많아지기 때문에 마스크 투명도를 반으로 낮춰준다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

접히는 부분은 Crystal 2 텍스처도 유용하다

 

 

 

이방법 말고도 더 많은 응용법이 있는데 나중에 설명하겠다

 

 

 

 

 

 

'서브스탠스 페인터' 카테고리의 다른 글

서브스탠스 체크무늬  (0) 2022.01.22
서브스탠스 페인터 기초  (0) 2022.01.04
서브스탠스 페인터 단축키  (0) 2020.11.15
posted by 모카쨩

  • total
  • today
  • yesterday

Recent Post

저사양 유저용 블로그 진입