분류 전체보기
-
Chapter 1.3 Coordinate3차원 그래픽스/Polygon mesh 2019. 2. 11. 23:29
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 1.3 Coordinate 카테시안 좌표계는 오른손 좌표계일 수도 있고 왼손 좌표계일 수도 있다.이전 장에서는 오른손 좌표계로 가정하였다. (오른손 좌표계) (왼손 좌표계) 하나의 폴리곤 메쉬를 오른손 좌표계와 왼손 좌표계 사이에서 포팅할 때는 리모델링 작업이 필요하다._정점의 정렬 순서가 변해야한다. (노멀이 물체 바깥으로 향하기 위해) _z 좌표 부호 변경 작업을 수행해야한다. (반드시)
-
Chapter 1.2 Polygon mesh3차원 그래픽스/Polygon mesh 2019. 2. 11. 23:08
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 1.2 Polygon mesh 0. 정의 - GPU는 폴리곤 메쉬 처리에 최적화되어 있다.폴리곤 메쉬의 정점들은 부드러운 곡면을 샘플링한 점들에 불과하다.폴리곤 메쉬는 정확한 표현법이 아닌 근사적 표현법이다. OpenGL - 볼록 폴리곤 (평면성과 볼록성) : 처리 속도를 빠르게 하기 위해Direct3D - 삼각형 폴리곤 (삼각형 메쉬) _ 메쉬의 해상도가 올라갈수록 본래의 곡면과 흡사해지지만메쉬를 처리하기 위한 시간이 증가하여 효율성은 떨어지게 된다. _ 저해상도의 메쉬를 고해상도로 변환하는 과정은 세분화_ 반대의 과정은 간략화라 한다. 1. 폴리곤 메쉬 표현 기법 - 삼각형 메쉬를 표현하는 가장 ..
-
Chapter 1.1 게임 제작 파이프라인3차원 그래픽스/Polygon mesh 2019. 2. 11. 22:03
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 1.1 게임 제작 파이프라인 폴리곤(polygon, 다각형) 텍스쳐(texture) : 물체 표면 색상을 결정하는 비트맵 이미지 골격 (skeleton) 리깅 (rigging) : 각각의 뼈의 움직임이 폴리곤 메쉬를 어떻게 변형하는지 정의 이후 폴리곤 메쉬에 삽입된 골격을 움직여서 애니메이션을 생성한다. 각 프레임을 구성하는 모든 요소가 결정되면 렌더링 모듈이 실행된다. 렌더링은 3차원 장면에서 2차원 영상을 생성해 내는 과정을 말한다. 그리고 최종적으로, 후처리 단계가 진행된다. (모션 블러, 초점 심도 등..)
-
Strategy Pattern (C#)디자인 패턴 하나씩 2019. 2. 11. 20:34
. strategy patternhttps://gmlwjd9405.github.io/2018/07/06/strategy-pattern.html 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 문제점 : 새로운 기능으로 변경하려면 기존 코드의 내용을 수정해야함.: 같은 메소드의 내용이 중복된다. Character 클래스를 예시로 들어보겠다.캐릭터 안에는 다양한 직업들이 존재하는데, 여기서 사용할 첫 주제는 공격이다.캐릭터 클래스를 캡슐화하여 동적으로 행위를 자유롭게 바꾸는 것인데. SetAttackStrategy - 이것을 따라 원하는 공격을 동적으로 집어넣을 수 있고 또 변화가 가능하다.이렇게 되면 캐릭터 클래스를 하나하나 수정하거나 중복되는 일이 줄어들게 된다. 캐릭터 클래..
-
Part 6. 명확하고코딩을 더 깔끔하게 2019. 2. 10. 01:16
Part 6명확하고 간결한 주석 달기 주석에 대한 좋은 정보들이 담겨있다. 함수의 동작을 실제로 할 수 있는 한도 내에서 최대한 명확하게 설명하라.신중하게 선택된 입/출력 예로 주석을 서술하라.코드가 가진 의도를 너무 자세한 내용이 아니라 높은 수준에서 개괄적으로 설명하라.많은 의미를 함축하는 단어로 주석을 간단하게 만들라. . 주석을 간결하게 하라 // int는 CategoryType이다.// 내부 페어는 첫 번째 float는 'score'이다.// 두 번째는 'weight'이다 // CategoryType -> (score, weight) . 동작을 명확하게 설명하라 // 이 파일에 담긴 줄 수를 반환한다.int CountLines(string filename) // 파일 안에 새 줄을 나타내는 바이..
-
Part 5. 주석에코딩을 더 깔끔하게 2019. 2. 10. 01:02
Part 5주석에 담아야 하는 대상 주석을 잘 쓰지 않는다.그렇게에 더 열심히 읽어보자. 설명하지 말아야 하는 것.코딩을 수행하면서 머릿속에 있는 정보를 기록하기.코드를 읽는 사람의 입장에서 필요한 정보가 무엇인지 유추하기. 책에서는 간단한 이야기로 정의를 해두었다. . 나쁜 이름에는 주석을 달지 마라 - 대신 이름을 고쳐라. 생각을 기록하라 - (예/ 빠르다 무엇 때문에). 코드의 결함을 설명하라 - TODO 개선 아이디어. 상수에 대한 설명 (오해가 생기지 않게). 세부 사항을 설명하여 예측하자 (예/ 1분 이후 타임아웃) 읽기 좋은 코드가 좋은 코드다.더스틴 보즈웰, 트레버 파우커 지음 - 임백준 옮김한빛미디어
-
Part 4. 미학코딩을 더 깔끔하게 2019. 2. 8. 22:46
Part 4미학 코딩을 하면서 항상 예쁘게 표현하고 깔끔해야한다는 생각이 있었다.변수명을 이상하게 지어버리고는 깔끔떠는 ?이 파트에서는 내가 쉽게 읽고 지나가겠지 했지만 당연 아니었다. 코드를 읽는 사람이 이미 친숙한, 일관성 있는 레이아웃을 사용하라.비슷한 코드는 서로 비슷해 보이게 만들어라.서로 연관된 코드는 하나의 블록으로 묶어라. 1. 코드를 읽는 사람이 이미 친숙한, 일관성 있는 레이아웃을 사용하라. 첫 번째 주제는 많은 사람의 코드를 보아야만 알 듯 했다. unity를 이용한 게임을 제작할 때에는 독학이 위주였고동료나 친구들 역시 적은 경험을 통한 지식이었다. 자격증을 취득하고 다른 이의 코드를 보며간편하고 이해하기 쉬운 방식들을 찾아나아갔는데 이것도 하나이다. 미학적으로 보기 좋은 코드가 사..
-
Part 3. 오해할코딩을 더 깔끔하게 2019. 2. 8. 21:43
Part 3오해할 수 없는 이름들 내가 가장 부족한 것이 이 점이라고 생각한다.이름을 짓고 나서 누군가가 이 의미를 이해할 수 있느냐 인데,부족한 점이라고 느끼게 되었다. 책에서는 간편한 단어들을 제시하였다.조금 더 찾아보며 적어두어야겠다. -- 번외로 변수명을 지어주는 사이트도 있으니 참고하자.http://www.curioustore.com/ * 경계 값 포함하는 한계값에는: min, max포함하는 범위에는: first, last배제하는 범위 : begin, end * Boolean 값 is(isOpaque)is + 명사: (무엇)인가 ?is + 현재진행형: ~하는 중 인가 ?is + 형용사: 수동태의 용어 (hidden, select 등) has(hasSpaceLeft)has + 명사: ~를 가지고 ..