190628 셰이더 엠플리파이로 만들고 불필요한 코드 삭제/ 버텍스 포지션은 float / UV, 텍스쳐, 칼라는 half 로 최적화
190307 셰이더 SimpleGlow 코드는 색을 r만 써서 가볍게 만듬
200324 셰이더 LWRP에서는 외부 셰이더를 사용할 수 없음(핑크색)
-> LWRP(Lightweight Render Pipeline)는 HLSL기반에 SRP(Scriptable Render Pipeline, HDRP와 URP의 기반)를 사용하는거라 랜더패스가 다르다.
LWRP는 후에 URP(Universal Render Pipeline)로 이름이 바뀐다. 코딩으로 레거시 셰이더를 URP로 전환 가능
200324 셰이더 URP(Universal Render Pipeline) = 범용적인 렌더 파이프라인(저사양이 아님, 구 LWRP(Lightweight Render Pipeline))
HDRP(High Definition Render Pipeline) = 고화질 렌더 파이프라인
200526 쉐이더 포지 프로젝트에서 만든 리플렉션 스크립트를 다른 프로젝트로 가져왔을 때 보이는게 다를 때
ㄴ텍스쳐 인스펙터에서 wrap mode에서 clamp(이미지를 반복안함)를 repeat(이미지를 반복함)으로 전환
ㄴ filter mode 이미지를 보정( no filter로 하면 도트 그대로 보여줄 수 있음)
200813 스위치와 lerp : 스위치는 컴파일시 마테리얼(마스터) 스위치 한개당 2의 n제곱 생성한다고 생각하시면 되서
눈으로 볼 땐 하나지만 컴퓨터가 받아들이는건 2의 n제곱개에요 그래서 인스트럭션 비교 후
적당히 커버 되겠다 싶은건 lerp로 스위치 대신으로 연결해주는게 좋다.
하나의 마테리얼에 기능을 다 담기보단 범용성 있는 마스터 몇 개로 비교하면서 쪼개 넣는게 좋다
If는 다이나믹 브랜치고, 스위치는 스태틱 브랜치라 사용 용도가 조금 다르다
201103 Q 쉐이더 그래프를 사용하지않는 유니티 프로젝트에서도 파티클 색상에 HDR을 넣는 방법이있을까요??
A 쉐이더 컬러프로퍼티에 [HDR]_Color 쓰시면돼요
https://unitycoder.com/blog/2019/05/25/enable-hdr-color-picker-for-shader-or-script/
<!--td {border: 1px solid #cccccc;}br {mso-data-placement:same-cell;}-->
I needed HDR color for some old Unlit/Color-shader, and for c# script also, found out that you can add this attribute for the shader:
|
// BEFORE (no hdr color picker)
|
_Color ("Main Color", Color) = (1,1,1,1)
|
// AFTER (hdr color picker)
|
[HDR]_Color ("Main Color", Color) = (1,1,1,1)
|
And for the script:
|
// BEFORE |
public Color shouldbeHDR = Color.white;
|
// AFTER |
[ColorUsage(true, true)]
|
public Color shouldbeHDR = Color.white;
|
210305 One OneMinusSrcAlpha(=blendadd)에 고통 받는 분들을 위해
디아블로3에 나왔던 add와 알파의 중간느낌이 프리멀티플라이 알파랑 느낌의 셰이더
blendadd는 그냥 알파채널에 따라서 additive랑 alpha blended가 함께 있는 셰이더라고 보시면 됩니다
alpha채널에 색이 1인 부분은 알파 블렌디드처럼, 0인 부분은 애디티브처럼 동작합니다
-> **테스트 결과 검정배경에 오페서티를 0으로 만들면 잘 나오기는 하나,
단독으로 쓰이면 흐리고 파티클색상 조절이 안됌. ZWrite 현상 발생. 투명한 배경 소스를 돌려 쓸 수도 없음
-> 차라리 ADD에서 명도를 25%로 줄여서 쓰는게 색도 먹고 비슷한 효과를 낼 수 있었음
-> 더 많은 연구가 필요(현재로썬 굳이 쓸 필요가 없어보임)
-> **레거시 알파 블랜디드의 셰이더 컬러를 조절하는게 색이 제일 이쁘게 나옴
다음이 가장 일반적인 블렌딩의 유형입니다 :
|
Blend SrcAlpha OneMinusSrcAlpha // Traditional transparency
|
Blend One OneMinusSrcAlpha // Premultiplied transparency
|
Blend One One // Additive
|
Blend OneMinusDstColor One // Soft Additive
|
Blend DstColor Zero // Multiplicative
|
Blend DstColor SrcColor // 2x Multiplicative
|
210619 쉐이더의 타임은 한번로드하면 앱실행 끝까지 살아있음(숫자가 무한대로 커져서 나중에 제대로 작동을 안함)
-> Fmod(time, period)으로 0 / 1과 중단신호 쓸것 / fraction(fract) 는 정수만 빼고 수수만 씀. 0, 1 잘 맞으면 이것도 안 튐
-> 쉽게하기 - uv애니메이션이나 이럴때는 0~1사이값만 필요하니까 time에 frac을 붙여서 쓰면 그런 정확도 이슈는 없어지는거죠. 그냥 time노드에 fraction붙여서 쓰시면됩니다
'====제작==== > 유니티 정보' 카테고리의 다른 글
유니티 앱 아이콘 세팅하기 (0) | 2023.04.03 |
---|---|
유니티 최적화 팁 (0) | 2023.04.03 |
유니티에서 스파인 없이 본 애니메이션 만들기 (0) | 2023.02.14 |
유니티 2D애니, 이펙트 최적화 팁 (0) | 2023.02.03 |
유니티 FXmaker 팁 (0) | 2023.02.03 |