강좌

    #1 - 게임루프와 테스트베드

    게임루프에 대하여 유니티 같은 엔진으로 게임개발을 시작하게 되면, 게임 루프라는 개념이 생소 할 수 있을것 같아요. 게임 뿐만 아니라 어플리케이션 이라면 무한루프가 있을 수 밖에 없는데요. 즉 엔트리포인트를 시작으로 while문을 만나지 않으면 프로그램이 그냥 종료되고 말겠죠. //C Style void main() { 초기화 루틴 무한루프(종료될때까지) 종료루틴 } ------------------------------------------ #Python Style def main : 초기화 무한루프(종료될때까지) 종료루틴 즉 게임루프란.. 무한루프에서 이루어지는 게임프로세스 라고 할 수 있겠어요. 게임루프의 구조는 보통 다음과 같아요. 게임루프() : # 업데이트 Game_Update() # 렌더링 ..

    타언어 개발자를 위한 파이썬 입문

    기존 타언어 개발자를 위한 강좌가 있으면 좋겠는데 .. (C++ 외에도 C#이나 JAVA에 익숙한 분들) 인터넷에는 너무 처음부터 설명하는 강좌밖에 없어서 저 처럼 시간 아까우신 분들을 위한 강좌에요. 파이썬 알아두면 다른 고수준 언어도 접근하기 쉬워요. (루비,루아,자바스크립트 같은..) 기존 언어 익숙하신 분들을 위한 강좌에요. 한 5분만 투자하면 마스터하실거 같네요. 그럼 빠르게 시작해봐요. 1. 설치 #1 아래 경로에서 설치 인스톨러 다운받으세요. https://www.python.org/downloads/ 설치시에 PATH 환경변수 등록을 체크 하는걸 권장합니다. 만약 안하셨다면 파이썬이 설치되어 있는 경로와 해당 경로안에 Scripts라는 폴더를 PATH에 추가합니다. (저는 D:\Phytho..

    URP/Lit 커스텀 하기 #2

    지난 Lit 커스텀 강좌에서는 URP 패키지 전체를 복사하여 URP 내부에서 Lit 쉐이더를 수정했습니다. 이번에는 관련 파일들만 가져와 Lit 쉐이더 클론에 기능을 추가하는 예시를 만들어 보도록 하겠습니다. 파일명이나 클래스명은 똑같이 따라 안하셔도 됩니다. (하지만 일단 따라하시는걸 추천드립니다. ^^;) 1. 관련파일 가져오기 URP 환경이 갖추어진 프로젝트라고 가정합니다. Assets 하위에 폴더를 하나 만듭니다. 저는 URP Core 프로젝트를 새로 만들고 'URPLit'이라는 폴더를 만들겠습니다. 그리고 하위에 'Editor', 'HLSL' 폴더도 만들어 두겠습니다. 탐색기를 열어 URP 프로젝트 폴더로 이동합니다. .\Library\PackageCache\com.unity.render-pip..

    URP/Lit 커스텀 하기 (feat. HalfLambert)

    Universal Render Pipeline에 내장된 Lit 쉐이더를 커스텀 해봅시다. Lit 관련 쉐이더 파일 구조를 알아볼겸 URP 패키지 안에서 기존 Lit 쉐이더를 수정하겠습니다. 예시로 하프램버트 기능을 추가해보겠습니다. 1. URP 폴더 옮기기 우선 'Library\PackageCache' 경로에서 아래와 같은 'com.unity.render-pipelines.universal@x.x.x' 폴더를 찾아 'Packages' 폴더에 옮겨줍니다. 그리고 프로젝트로 돌아와 패키지매니저를 열어보면 'Custom' 이라는 마크가 떠있을겁니다. 이제 URP 폴더를 수정해도 원래대로 돌아오지 않을것입니다. 2.관련 파일들 Lit 쉐이더를 수정하기 위한 관련 파일 리스트는 아래와 같습니다. (URP 패키지 ..

    N Dot L

    그래픽스는 N (normal) L (light) 이 두 백터의 내적에서 부터 시작해야 할것 같네요. N은 물체의 방향, L은 빛의 방향을 뜻합니다. 둘다 방향만 있으면 되기에 크기가 1인 단위백터로 사용합니다. 백터의 내적은 각 성분끼리 곱의 합이지만 코사인 법칙에 의해 각 백터의 크기와 두백터의 코사인의 곱으로 표현 할 수 있어요. |A| * |B| * cosθ 하지만 단위 백터의 크기는 1이므로 단위백터의 내적은 두백터의 코사인 값 그대로가 됩니다. (|A| * |B| 가 날라가서) Cos은 두백터의 사이각이 클수록 작아지고 , 사이각이 작을 수록 Cos 값은 커지므로 음영의 정도를 표현하기 딱인 값인거죠. 왜 딱인지 예를 들어 봅니다. L을 손전등의 방향 N을 내 눈의 방향 으로 가정해 봅니다. 가..

    메모리와 포인터

    메모리 게임도 컴퓨터 프로그램입니다. 컴퓨터 프로그램의 핵심은 데이터를 산술 가공한후 입출력(Read/Write, Get/Set, Input/Output) 하는 것 입니다. 여기서 데이터의 입출력은 컴퓨터 주기억장치에 기록된 데이터만 가능합니다. 주기억 장치란 일반적으로 컴퓨터 RAM 공간이며 OS 커널에서 관리를 해주는 한도 내에서 사용 가능합니다. 이중 프로그래머가 직접 다룰 수 있는 영역은 HEAP(힙) 이라고 불리는 영역이고, OS 커널의 관리하에 접근 가능한 영역을 얻어 와야만(할당) 사용 가능합니다. 프로그래밍 언어에서 alloc, malloc, new 등의 함수나 연산자로 할당한 메모리가 바로 힙영역입니다. 즉 OS 커널은 컴퓨터 휘발성 공간에 포함되어 있는 영역을 힙이라는 이름으로 관리하며..