728x90

2024/03 20

[Unity] 셰이더 처리 후 텍스처 테두리가 번져 보이는 문제

간단한 가우시안 블러(Gaussian Blur) 코드를 올리고 보니 테두리의 색상이 번져있는 것을 제보를 받고 알게 됨. 원인은, 가우시안 블러 셰이더 처리 중, UV 값이 0보다 작거나 1보다 큰 영역까지 침범했기 때문. [Unity] 간단한 가우시안 블러(GaussianBlur) 셰이더 코드 텍스처에 가우시안 블러 처리를 하면 요런 결과물이 생성됨. 아래는 머티리얼 속성. Blur Radius 를 조절해서 Blur 강도를 조절할 수 있다. 간단한 가우시안 블러 셰이더 코드 Shader "Custom/GaussianBlur" { tistory.wonsorang.com 아래는 침범된 코드 스니펫. // Horizontal blur pass for (int x = -5; x

[Unity] 간단한 가우시안 블러(GaussianBlur) 셰이더 코드

텍스처에 가우시안 블러 처리를 하면 요런 결과물이 생성됨. 아래는 머티리얼 속성. Blur Radius 를 조절해서 Blur 강도를 조절할 수 있다. 간단한 가우시안 블러 셰이더 코드 Shader "Custom/GaussianBlur" { Properties { _MainTex ("Texture", 2D) = "white" {} _BlurRadius ("Blur Radius", Range(0.0, 10.0)) = 1.0 } SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct appdata { float4 vertex :..

[Unity] 유니티로 Texture 를 복사하거나 Shader로 변형하는 방법

Graphics.CopyTexture()는 텍스처 간의 간단하고 효율적인 데이터 전송 효율적인 데이터 전송 Texture.isReadable 값이 false 인 경우, CopyTexture 가 텍스처를 복사하는 가장 빠른 메소드. 아래 3가지 조건이 두 텍스처간에 동일해야 함. - 텍스처 포멧 - 크기 - RenderTexture.antiAliasing 값 https://docs.unity3d.com/ScriptReference/Graphics.CopyTexture.html Unity - Scripting API: Graphics.CopyTexture This method copies pixel data from one texture to another on the GPU. If you set Textu..

[Unity] Dithering 셰이더 함수, Dither 노드, Dither thresholds array

Dither는 양자화 오류를 무작위화하는 데 사용되는 의도적 형태의 노이즈. 이미지에서 컬러 밴딩과 같은 대규모 패턴을 방지하기 위해 사용되거나, 화면 공간에 디더링을 적용하여 패턴의 균일한 분포를 보장하기 때문에 불투명한 오브젝트의 특정 픽셀을 Cliping 하여 투명하게 보이도록 처리할 수 있음. 불투명 렌더링 패스에서 투명하게 보이도록 처리하는데 유용. 아래 함수의 ScreenPisition 은 디더 패턴을 적용하는 데 사용할 스크린 좌표. void Unity_Dither_float4(float4 In, float4 ScreenPosition, out float4 Out) { float2 uv = ScreenPosition.xy * _ScreenParams.xy; float DITHER_THRESH..

[게임 자료] 퍼즐 게임 관련 사이트들 모음

Novel Games 다양한 퍼즐 게임들을 웹상에서 바로 플레이 해볼 수 있는 곳. https://www.novelgames.com/ko/puzzle-games/ 퍼즐 게임 | Novel Games 무료 싱글 플레이어 게임을 즐기십시오. 액션, 슈팅, 퍼즐, 전략 등 종류가 다양합니다. 매달 새 게임이 추가됩니다! www.novelgames.com Increpare Games 스티븐의 소시지 롤 (Stephan's sausage roll) 의 게임 개발사 홈페이지. 독특한 미니 게임들을 홈페이지에 모두 공개해두고 있고 HTML5 소스코드를 공개해두기도 함. https://www.increpare.com/ increpare games 2018/06/18 Individuals can produce a soc..

[Unity] 밸브사의 포탈(Portal) 게임의 포탈 메카닉스 만드는 방법 (자료)

플레이어 카메라와 포탈의 카메라를 생성하고 조작해서 포탈에 해당하는 매쉬 렌더러의 머티리얼 텍스쳐를 교체하는 기법. 튜튜리얼 영상 https://www.youtube.com/watch?v=cWpFZbjtSQg GitHub 저장소 링크 https://github.com/SebLague/Portals/tree/master GitHub - SebLague/Portals: Portals in Unity Portals in Unity. Contribute to SebLague/Portals development by creating an account on GitHub. github.com 게임 개발에 필수적인 내용을 담는 명서들을 소개합니다. (유니티 최신 버전) https://link.coupang.com/a..

[Unity] Working with Cinemachine Cameras Overview (시네머신 카메라 작업 개요)

시네머신(Cinemachine) 개요 시네머신(Cinemachine)은 코드를 작성하지 않고 복잡한 행동을 만들 수 있는 방법을 제공하는 카메라 시스템. 이전에는 카메라 움직임을 직접 키프레임화하거나 코드를 통해 스크립트로 작성하여 특정 팔로우 움직임을 만들어야 했음. 시네머신(Cinemachine)은 Cinemachine Brain 과 Virtual Camera(vcam) 으로 구성되고 메인 카메라에 적용하는 방식. 메인 카메라에 있는 모든 것이 시네머신과 함께 작동하며, 메인 카메라를 구동하는 강력한 애니메이션 시스템이라고 생각하면 됨. Cinemachine plugin는 설치하기 쉽고 설치부터 애니메이션까지 카메라를 제어할 수 있는 사용하기 쉽고 유연한 시스템을 제공. 기존 카메라 시스템을 변형하거..

[Unity] 화면 캡쳐(Screen Capture) 관련 자료 메모

화면을 캡쳐가 필요한 일이 종종 있다. 간단한 사례로, 1. Screen Shot 을 파일로 남기기 위해 2. 게임 화면을 캡쳐한 뒤 가공해서 활용하기 위해 필요한 기능이 디테일하게 조금씩 달라질 수 있음. 화면 캡쳐를 위한 두 가집 방향성을 제시. 1. ScreenCapture 클래스 정적 메소드 사용 아래 함수를 활용해서 현재 화면을 바로 캡쳐할 수 있다. 아래 샘플 코드는 Texture 타입으로 반환하는데, 다른 함수도 있으니 참고. Texture2D texture = ScreenCapture.CaptureScreenshotAsTexture(); https://docs.unity3d.com/ScriptReference/ScreenCapture.html Unity - Scripting API: Scr..

화면 블러 처리 관련 자료 메모

정규 분포 함수도 가우스 함수 중 하나. 흐려짐 수치에 곱하기 유용함. https://www.desmos.com/calculator/trhru2deav?lang=ko 최대값을 1로 한 함수 : https://www.desmos.com/calculator/gkpftewc06 위 함수 값을 가져다가 텍스쳐의 텍셀을 샘플링 한다. 블러의 설질상 해상도를 축소해도 별 문제가 없기 때문에 0.5 스케일로 샘플링 해도 됨. 아래는 셰이더 코드 Shader "Custom/BlurEffect" { Properties { _MainTex("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 100 Pass { ZTest Off ZWrit..

[E-BOOK] 유니티 게임 디자이너 플레이북 무료 배포. The Unity Game Designer Playbook

아래 링크에서 pdf 로 받아볼 수 있습니다. https://unity.com/kr/resources/game-designer-playbook The Unity Game Designer Playbook Download your free copy of The Unity Game Designer Playbook, a new guide to inspire and instruct game designers who want to learn how to prototype, craft, and test gameplay in Unity. unity.com Unity에서 게임플레이 프로토타이핑, 제작, 테스트 방법을 배우려는 게임 디자이너에게 영감을 주고 지침을 제공하는 새로운 가이드인 Unity 게임 디자이너 플레이북..

728x90
반응형