본문 바로가기

코드 개념

(8)
(예제 / 설명) Spherical Mask Shader Part.1 [Step] 1. 새로운 Standard Surface Shader를 생성2. 셰이더 이름을 변경3. 머트리얼 생성4. 큐브 게임오브젝트를 생성5. 큐브 게임 오브젝트에 머트리얼 적용6. 적용된 머트리얼에 셰이더 적용 7. float grayscale = (c.r + c.g + c.b) / 3; // 회색은 RGB의 평균값으로 한다.8. fixed3 c_g = (grayscale, grayscale, grayscale); // fixed3(color) 값은 산출된 grayscale 값을 각각의 요소에 적용한다.9. o.Albedo = c_g; // 객체의 컬러 값을 위에 적용된 값으로 대체 한다.
ShaderLab 구문 (Unity) ShaderLab 구문Unity 의 모든 셰이더 파일은 “ShaderLab”이라는 선언형 언어로 작성되어 있습니다. 이 파일에서 중첩 중괄호 구문은 셰이더를 서술하는 다양한 요소를 선언합니다. 예를 들어, 어떤 셰이더 프로퍼티가 머티리얼 인스펙터에 표시되어야 하는지, 어떤 종류의 하드웨어 폴백을 할지, 어떤 종류의 블렌딩 모드를 사용할지 등을 선언합니다. 그리고 실제 “셰이더 코드”는 동일 셰이더 파일에서 CGPROGRAM 스니핏으로 작성되어 있습니다. 표면 셰이더와 버텍스 및 프래그먼트 셰이더를 참조하십시오.이 페이지와 하위 페이지에서는 중첩 중괄호 “ShaderLab” 구문을 기술합니다. CGPROGRAM 스니핏은 표준 HLSL/Cg 셰이딩 언어로 작성되어 있습니다. 각 문서 페이지를 참조하십시오.S..
Unity3D Shader 방식 Fixed Function Program키워드로 구성정점기반 라이팅 (가볍고 빠르다)오래된 하드웨어와 호환Fixed Function Program 예 Vertex / Fragment Program셰이더 모델 : 2.0 / 3.0셰이더 언어 : Cg, GLSL셰이더 : 버텍스, 픽셀 셰이더CGIncludes 디렉터리셰이더 관련 다양한 매크로 및 함수 제공Cg To GLSL 자동 변환Vertex / Fragment Shader 예 Surface Shaderexpand source Vertex Lit Rendering PathForward Rendering PathDeferred Lighting Render PathFixed Fundtion ProgramO Vertex Fragment Program O Sur..
HLSL 내장 함수 (자료형) ※ 용어는 사전 링크를 포함하고 있습니다. 함수 내용 sample2D 2D Texture sample3D 3D Texutre float4 32 bit : Vector에 주로 쓰임 half4 16 bit : Color값에 주로 쓰임 (모바일 지원) fixed4 8 bit : Color 값에 주로 쓰임 (모바일 지원 안함) tex2D(s, t) 텍스쳐 샘플링에 사용하는 HLSL 함수. 첫 번째 인자에서 두 번째 인자 좌표에 있는 텍셀을 구하는 함수. s는 샘플러 또는 sampler2D 개체 (Texture), t는 2D 텍스처 좌표 (UV) tex2D(s, t, ddx, ddy) 2D의 투영 텍스처 참조 ddx(x), ddy(x) 스크린공간의 x, y 좌표에 대한 x, y의 편미분을 리턴한다 reflect(..
스크립트에서 쉐이더에 변수 전달하기. .shader Shader "MyShader"{Properties{....} SubShader{ int A; // 전달받을 변수 float B; // 전달받을 변수 sampler2D C; // 전달받을 변수 sampler3D D; // 전달받을 변수} ※ SubShader 에다 변수를 선언하고.... using System.Collections;using System.Collections.Generic;using UnityEngine; public class MyClass: MonoBehaviour { private Material myMaterial; // 쉐이더에 접근할 머트리얼private myMaterial= new Material(MyShader); // MyShader를 적용 // 넘길 데이터..
#04. 메모리의 종류 메모리의 종류 앞서 메모리의 개념에 대해 알아봤습니다. 그럼 크게 메모리의 종류에 대해 간단하게 알아보도록 하겠습니다. (큰 틀만 알아보도록 하겠습니다.) 숫자형 자료 : 대표적으로 int, float, shot.. 등등이 있으며(자세한건 C강좌에서..), OS는 저장된 자료가 숫자임을 알 수 있게 하며, 여유 메모리공간 중, 임의의 장소에 해당 공간을 할당합니다. 문자형 자료 : 최소 단위로 char가 있으며, OS는 저장될 자료가 문자 또는 문자열(String)임을 알 수 있도록 하며, 역시 여유 메모리공간 중, 임의의 장소에 해당 공간을 할당 합니다. 함수형 자료 : 함수형 자료라 함은, 함수를 생성할때, 해당 작업에 대한 결과 값을 어떠한 자료로 저장할 지를 지정합니다.(이것에 대한 종류는 역시 ..
#03. 메모리의 개념 메모리의 개념 지난 시간에는 순차적 코딩을 통해, 간단한 출력문에 대한 코드를 확인해 보았습니다. 그중 메모리에 대한 몇가지 개념과 특성을 알아보려고 한다. (우리는 이번 게시물을 통해 int, float등에 대한 심도있는 학습을 하고자 하는게 아님을 분명히 밝힙니다. 그러니 어려운 이야기 나올까봐 쫄지 마시길...) 프로그래밍은 일단 메모리를 얼마나 적절하게 사용하느냐에 따라 작업에 대한 이해도가 달라지게 됩니다. 하지만 이러한 개념적 방식은 어떠한 곳에서도(필자가 아는 한...) 강의나 수업하지 않습니다. 일단 우리가 코딩을 하는데 있어서 사용되는 다양한 언어가 있습니다. (SQL, Python, C, C++, C#, java, lua, 등등... 매우 많습니다...) 모든 언어의 공통점은 메모리를 ..
코딩의 기본적인 개념(프로그래밍 개념)좀 알고 공부하자(응?) 코딩할때 개념좀 잡고 공부하자 최근 프로그래밍이 활성화 되면서, 프로그래밍 관련 자료들이 많아지고 있습니다. 코딩을 하기 전에, 몇가지 개념과 코딩하는 방식적인 요령을 익히면, 코딩에 대한 실력이 월등히 높아지고, 그에 따른 효율 역시 높아지게 됩니다. (저도 그렇게 된 케이스 입니다) 뭔 거창한 소린가 하겠지만... 앞으로 블로깅을 하게될 내용은 코딩전 알아두면, 매우 좋은 개념들을 블로깅 하려고 합니다. 결론은 그냥 알아두면 코딩이라는게 쉬워진다!! 라고 하자! 그러한 부분은 현재 게시판(프로그래밍을 처음 시작합니까?)에 남겨 놓을 것입니다. 그리고 프로그래밍을 처음 시작한다면 다소 귀찮거나 재미 없는 부분이 있을 수도 있습니다. 하지만 차근차근 한번씩 읽어보시는 것도 많은 도움이 될 것이라 생각됩니다.