공부
순환 (Recursion)
ⓐ 자기 자신을 호출하는 함수 public class Recursion { public static void main(String[] args) { Func(); } public static void Func() { System.out.println("함수 실행"); Func(); } } 실행 결과 : 함수 실행 함수 실행 함수 실행 함수 실행 함수 실행 함수 실행 함수 실행 ... (무한 루프) ⓑ 무한 루프에 빠지지 않으려면? public class Recursion { public static void main(String[] args) { int n = 4; Func(n); } public static void Func(int n) { if (n
연습
Shader "Shader/Toon Rim Light" Property_MainTex ("Base (RGB)", 2D) = "white" {} _BumpMap ("BumpMap", 2D) = "bump" {} //노멀맵 텍스쳐 Tags { "RenderType"="Opaque" }LOD 300 //노멀맵을 적용하려면 LOD가 300 CGPROGRAM#pragma surface surf Lambert sampler2D _MainTex;sampler2D _BumpMap; struct Input {float2 uv_MainTex;float2 uv_BumpMap; //_BumpMap으로부터 색상 정보를 읽어오기 위함}; void surf (Input IN, inout SurfaceOutput o) { //Inp..
Study #1
셰이더란? 화면에 출력할 픽셀의 위치와 색상을 계산하는 함수 셰이더는 정점셰이더(Vertex Shader)와 픽셀셰이더(Pixel Shader)로 나뉘며, 앞에서 정의한 내용은 픽셀셰이더(Pixel Shader)에 해당한다. 정점 셰이더(Vertex Shader) 3D 물체를 구성하는 정점들의 위치를 화면 좌표로 변환하는 것이다. (각 정점의 공간을 변환) 정점셰이더는 3D오브젝트를 구성하는 정점의 수만큼 실행되며, 정점의 위치를 3개씩 모으면 화면에 출력할 삼각형이 만들어진다. 만들어진 삼각형 안에 몇 개의 픽셀이 들어갈지 알 수 있게 하는 것이 래스터라이저(Rasterizer)다. 래스터라이저는 정점셰이더가 출력하는 정점의 위치를 차례대로 3개씩 모아 삼각형을 만들고, 그 안에 들어갈 픽셀들을 찾아낸..
DirectX 파이프라인
[DirectX 3D 그래픽 파이프라인]1단계 - 3D모델 구축 3D모델을 '로컬 좌표계' 에 띄우는 단계 (CPU) 렌더링 파이프라인 중 '로컬 스페이스' 에 해당한다. 2단계 - 가상 공간 배치 구축한 3D모델을 '월드 좌표계' 로 옮겨 하나의 장면을 구성하는 단계 (CPU) 렌더링 파이프라인 중 '월드 스페이스' 에 해당한다. 3단계 - 정점 단위 음영 계산 정점의 정보(좌표, 색상, 조명 등)를 변화시켜 물체를 다른 위치로 옮기거나 텍스쳐의 좌표를 바꾸거나 색상을 바꾸는 작업을 한다. (GPU) 4단계 - 정점의 증감 정점셰이더(Vertex Shader)에서 정점의 정보(Primitive)를 받고, 가진 정보를 이용해 정점을 증감시켜 새로운 도형 정보를 만든다. ※ Primitive 선, 원, 곡..