2016년 10월 10일 월요일

3D 극좌표계

3인칭 카메라를 만들때 많이 사용하는 좌표계입니다.

좌측의 구면좌표계가 3D 극좌표계인데요
(극좌표계란 직교좌표계와 다르게 거리와 각도로 좌표로 표현하는 방식입니다.)

여기서 구면좌표 p를 직교좌표로 표현한다면

우측의 직교좌표계처럼 하나씩 풀어나가면 됩니다(파워포인터로 그린다고 뼈빠졌던;;).

그러면 아래와 같은 직교좌표로 나오게 되죠

이걸 풀어본다면 아래와 같습니다.(원노트 호환때문에 이미지로;;)



최종적으로





반각의 공식


배각의 공식



※원노트에 정리해 놓은 것인데;; 블로그에 호환이 안돼서 이미지로 붙여넣었습니다.

2016년 10월 6일 목요일

ActivePoint

선택한 엘리먼트를 디테치 시켜서
편집하기 쉽게 하는 스크립트 입니다.


함선 모델링 하던중
파츠별로 모델링 하기 편하게 하기 위해서 만들었습니다.

2016년 10월 5일 수요일

골렘 작업

좀더 빠르게 리소스 작업을 구상하던 중에

지브러시만 이용해서(맥스 사용하지 않음)
게임 리소스를 만들어볼려고 했습니다.

음. 결국 면정리가 쉽지 않아서 어려웠던 작업인데요

ZMesher를 이용하면

좀더 나아지지 않을까 생각합니다.

이건 스컬핑 작업

면 배분과 UV 작업(결국 나중에는 버텍스를 땡겨야 됩니다.)

맵핑 작업니다

이건 인게임 테스트입니다.

IEB 스크립트

처음 만들어보는 맥스 스크립트네요

Inset, Extrude, Bevel을 연속으로 처리하는 스크립트 입니다.


메카닉 외곽 오브젝트를 처리할 때
노가다가 너무 심해서 만들어본 스크리트입니다.


2016년 9월 27일 화요일

벡터 크기 비교

단순히 두 벡터의 크기를 비교할 때
Vector3.sqrMagnitude를 사용하는 것이 좋다.

이유는 Vector3.Distance 함수는 제곱근의 연산(벡터의 길이를 구하기 위해)이 들어가는데

sqrMagnitude는 제곱근을 계산하지 않고 제곱한 값끼리 비교하므로 제곱근의 연산을 줄일 수 있기 때문

2016년 9월 26일 월요일

부동소수점 연산 오류

부동소수점 연산은 치명적인 오류가 있습니다.













위에서 보다시피 0.1만 더했는데 엉뚱한 값들이 나오게 됩니다.

 


부동소수점 오류의 발생 이유는
컴퓨터에서 10진수를 2진수로 변화할 때 발생하는 구조적인 문제이죠

이렇기 때문에 float값을 0과 비교하거나
Float형 값들을 비교할 때는 아래와 같은 방법을 쓰게 됩니다.

0과 비교할 때는

if (sw * sw > Mathf.Epsilon)
두수의 제곱근을 구해 Mathf.Epsilon과 비교

Mathf.Epsion은 0과 매우 가까운 값입니다.
즉
( 값 + Epsilon = 값 ) 이 되지만
( 0 + Epsilon = 0 )이 되지요

Float 형끼리 비교할 때는

Mathf.Approximately(1.0F, 10.0F / 10.0F))


※ 부동 소수점은 부정확하기에 비교를 위해서 등호(=) 연산자를 사용하는 것을 추천하지 않습니다.
(즉, 1.0 == 10.0 / 10.0 은 true를 반환하지 않을수도 있습니다.)








2016년 9월 21일 수요일

사영 기하학

사영기하학

프로젝션 기하학

사영(projection)에 의해 변하지 않는 성질을 연구하는 분야

사영 [ projection , 射影 ]
(프로젝션이라 새각하면 된다.)

평면이나 공간 위에 있는 도형의 각 점을 평면이나 공간 위에 있지 않는 점을 잇는 직선을 긋는 것을 말한다.


평면 위의 도형 F의 각 점과 F 위에 있지 않은 점 O를 잇는 직선을 긋는 것을 F를 O에서 사영한다고 한다. 또, F를 O에서 사영한 경우의 각 직선과 O를 지나지 않는 직선 l과의 교점을 구하는 것을 F를 l로 절단한다고 한다. F를 O에서 사영하고 그것을 l로 절단하여 도형 F′가 얻어질 때, F를 O에서 직선 l 위의 F′로 사영한다고 한다.

유클리드 기하학

기하학

점, 직선, 곡선, 면, 부피 등 공간의 성질을 연구하는 수학 분야.

유클리드 기하학

다섯가지 공준을 가지고 이루어진 기하학

유클리드 기하학의 5개의 공준
  • 두 점이 주어졌을 때, 그 두 점을 통과하는 직선을 그을 수 있다.
  • 임의의 선분을 직선으로 연장할 수 있다.
  • 한 점을 중심으로 임의의 반경의 원을 그릴 수 있다.
  • 모든 직각은 서로 같다.
  • 임의의 직선이 두 직선과 교차할 때, 교차되는 각의 내각의 합이 두 직각(180도)보다 작을 때, 두 직선을 계속 연장하면 두 각의 합이 두 직각보다 작은 쪽에서 교차한다. (평행선의 공리, 제 5공준) [2]

공리 : 어떤 이론체계에서 가장 기초적인 근거가 되는 명제(증명이 없으며 불가능하다.)
공준 : 특정한 분야에 한정된 공리(유클리드 공준, 평행성 공준 등)