목록전체 글 (52)
게임 프로그래밍
일본어에는 기본적으로 히라가나, 가타카나, 한자를 사용합니다. 히라가나, 가타카나는 글자를 보고 해당하는 소리를 읽으면 됩니다. 한자는 갯수도 많고, 읽는 방법도 달라서 어렵습니다. 그래서 일본어 공부를 시작하시는분들은 보통 히라가나, 카타카나 부터 외우기 시작합니다. 히라가나는 이렇게 한자를 변형시킨 글자 입니다. (あ)는(安)이 한자를 변형해서 만든 것 입니다. 우선 일본어를 공부하기 위해서는 이 기본이 되는 히라가나, 카타카나를 공부해야 합니다. 히라가나, 가타카나 표 입니다. 이걸 보고 천천히 외우면서 일본어 공부를 시작하면 되겠습니다.
이번에 친구와 만든 게임을 구글 플레이 스토어에 등록하였습니다. 최근에 방송으로 유행했던 메이플스토리의 인내의 숲에서 영감을 얻어서 인내의 숲 모바일 버전을 만들었습니다. :) 많이 부족한 게임일수도 있지만, 재밌게 즐겨주셨으면 좋겠고 혹시 플레이하셨으면 리뷰도 남겨주시면 굉장히 기쁠것 같아요 ㅎㅎ https://play.google.com/store/apps/details?id=com.shj.JPER 더쿤점프:인내의숲 - Ducoon Jump - Google Play 앱 (오리)너구리가 포탈에 들어 갈 수 있게 도와주세요! 우리의 (오리)너구리는 숲에 있는 포탈에 들어가야 합니다. 여러분들이 귀여운 (오리)너구리를 움직여 포탈에 갈 수 있게 해주세요! 태초마을에 가는 경우가 많겠지만 포기하지 마세요! ..
앞서 포스팅 했던 Lambert, Blinn-Phong 방식은 현실과 비슷하게 만드는 방식으로 PR(Photo Realistic) 렌더링 이라고 합니다. 반대로 NPR 렌더링이란, Non-Photo Realistic으로 현실적이지 않은 렌더링을 뜻 합니다. 흔히 말하는 카툰 렌더링 같은 그래픽을 생각하면 될 것 입니다. 그렇다면 2pass 를 이용해 외각선을 만들어 보겠습니다. 2pass 란 물체를 두번 그리는 것 입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ..
스펙큘러 표현 공식은 다양하지만 가장 유명하고 전통적인 방식은 Phong반사 입니다. 이 공식의 기본 원리는 "내가 보는 방향으로부터 반사된 방향에 조명이 있으면 그 부분의 하이라이트가 가장 높다" 입니다. Blinn-Phong의 공식은 "시선 벡터와 조명 벡터의 중간값인 '하프 벡터'를 구하고, 이를 노멀 벡터와 내적한다." 그렇다하면 하프 벡터는 어떻게 구할 수 있을까요? 벡터의 특징중에 하나를 살펴보면 "길이가 같은 두 벡터를 더 하면, 두 벡터 사이의 절반인 각도가 나온다" 라는 특징이 있습니다. 이를 통해 하프 벡터는 "시선 벡터" 와 "조명 벡터" 를 더 하고 이를 normalize 해주면 됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21..
림 라이트를 이용하면 홀로그램 같은것을 만들 수 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 Shader "Custom/Rim" { Properties { _MainTex ("Albedo (RGB)", 2D) = "white" {} _Color("Color",Color) = (1,1,1,1) } SubShader { Tags { "RenderType"="Transparent" "Queue"="Transparent" } LOD 200 CGPROGRAM #pragma surface surf Standard Lamb..
모든 물체는 기울어질수록 반사가 심해집니다. 반사율은 재질에 따라 다르게 나타납니다. 역광이거나, 털이거나 반투명 재질을 가진 물체들은 이 현상이 매우 강렬하게 나타날수 있고, 재질에 따라 잘 안보일 수도 있습니다. 사진 분야에서는 이것을 Rim Light라고 부릅니다. 금속 재질은 비금속 재질보다 확연하게 반사율이 다릅니다. 이러한 반사 공식을 Fresnel(프레넬) 이라 부릅니다. 이 프레넬 공식을 구현해 림 라이트를 만들어 봅시다. Lambert 라이트에 대해서 잠깐 얘기해보겠습니다. "노멀 벡터와 조명 벡터의 각도가 같으면 밝고, 90도가 되면 어두워진다" 이었습니다. 1 2 3 4 5 struct Input { float2 uv_MainTex; float3 viewDir; }; cs input에..
전에 봤던 플랜과 디렉셔널 라이트를 보면 둘이 마주보고 있을때 가장 밝은 빛이 되었습니다. (플랜의 노말벡터)---------> ----------->(조명 벡터) 이로써 0도, 1일때 가장 밝은 상태가 됩니다. 물체는 이런 식으로 버텍스의 각도에 따라 빛의 영향을 받게 됩니다.
1. 벡터에 숫자를 곱하기 단순히 벡터의 크기가 늘거나 줄어듭니다.(1 이하의 소수점일 경우) 2. 벡터끼리 더하기 각 요소를 더해주면 됩니다. 단 벡터의 단위는 같아야 합니다. 벡터끼리 더하면 재밌는 사실이 나옵니다. '길이가 같은 두 벡터를 더하면, 두 벡터 사이의 절반인 각도가 나온다'는 것입니다. 모든 벡터의 길이를 1로 만드는 단위 벡터로 만드는 경우 이 사실이 굉장히 유용합니다. 3. 벡터끼리 빼기 A벡터에서 B벡터를 빼준다면 B->A 로 향하는 방향이 나오게 됩니다. 이 공식은 쉐이더에서 버텍스가 바로보는 조명의 방향이나 카메라의 방향을 구할 때 주로 사용합니다. 4. 벡터의 곱셈 벡터의 곱셈은 내적(Dot)와 외적(Cross) 두 가지 종류가 있습니다. 여기서는 내적에 관련된 이야기만 하겠..