
TMI - Modeling과 Mesh 구성 요소 - 여러가지 Mesh File Format 이번 포스팅에서는 Mesh를 저장하는 여러가지 File Format에 대해서 이야기 해보겠습니다. 아래 그림과 같이 수많은 File Format들이 있지만 이 중에서도 많이 사용하는 OFF, OBJ, STL에 대해서 알아보도록 하겠습니다. 또한, 알아보기 쉽게 Binary 파일이 아닌 ASCII 파일 기준으로 설명하도록 하겠습니다. 0. 들어가기 앞서 File 내용에 대해 이야기 하기 전에 먼저 앞으로 많이 나오게 될 표현들에 대해서 저희끼리 약속을 하고 넘어가도록 하겠습니다. V = vertex(점), F = face(면), E = edge(선), Vi = vertex Index, Vn = vertex norma..

그래픽스를 하는 사람들에게는 익숙한 물체가 있습니다. 그건 바로 유타 주전자 입니다. 이 주전자를 아래 오른쪽 그림처럼 Computer에서 표현하고 싶을 때는 어떻게 해야할까요? 바로 Modeling이라는 방법을 통해 실제 물체를 컴퓨터가 이해할 수 있는 Model로 만들게 됩니다. 그럼 Modeling이란 무엇일까요? Modeling은 간단하게 말하면 복잡한 현실세계를 추상화, 단순화, 명확화 하기 위해서 미리 약속한 표기법 대로 표현하는 것을 말합니다. 그래서 우리는 Mesh Modeling을 통해 현실세계의 유타 주전자를 컴퓨터가 이해할 수 있도록 점으로, 선으로, 면으로 표현할 수 있게 됩니다. 그러면 이제 Mesh가 뭔지 알아봐야 할 것 같습니다. Mesh란? Mesh는 물체의 표면을 나타내는 ..

C#은 매우 강력한 기능인 Reflection을 사용할 수 있습니다.Reflection을 한 마디로 정의하면 "런타임 때 컴파일 타임에 정의된 정보를 가져올 수 있는 기능"입니다.설명만 보면 "이것이 정확히 어떤 의미인지, 어떤 상황에서 필요한 기능인지" 잘 이해하기 어렵습니다.하지만 좀만 시간을 들여 파악해보면 이것이 무엇을 의미하는지 알 수 있고, 생각보다 활용할 수 있는 곳이 많다는 것을 알 수 있습니다. 이런 것이 가능한 이유는 닷넷 프레임 워크 용어 정리 포스팅에서 간단하게 설명했지만 C#으로 만들어진 EXE 파일은 CLR이라는 또 다른 프로그램에 의해 관리를 받고 있기 때문입니다. 예시그럼 Reflection을 통해 어떤 것들을 할 수 있는지 예시를 통해 간단히 살펴보겠습니다.설명 드릴 예제는..

저번 포스팅에서는 C#의 Pass by value에 대해 알아보았습니다. 짧은 예제를 통해 value type의 변수와 reference type의 변수를 parameter로 보냈을 때의 동작을 알아보았죠. 그리고 value type과 reference type의 동작 차이에 대해서는 저저번 포스팅에서 설명드렸었습니다. in, out, ref 키워드 이번 포스팅에서는 Pass by reference에 대해 알아보겠습니다. 먼저 요약해서 말씀드리면 C#에서는 ref, out 혹은 in 이라는 키워드를 통해 Pass by reference를 구현합니다. 이름에서 유추할 수 있듯이 ref는 reference로 보낸다는 것을 뜻하고 in은 입력 용도로, out은 출력 용도로 사용한다는 것을 뜻합니다. 한 가지 ..

저번 포스팅을 통해 C#의 Value Type(값 형식)과 Reference Type(참조 형식)에 대해서 알아보았습니다. 각 타입 변수에 대입 연산자(=)를 사용했을 때 나타나는 동작 차이를 통해 두 타입이 어떻게 근본적으로 다른지 알아보았죠. 이번 포스팅에서는 각 타입을 함수의 Argument로 보냈을 때 나타나는 동작 차이에 대해 알아보겠습니다. 그리고 그 외에 헷갈릴 수 있는 부분인 Pass by value와 Pass by reference에 대해 알아보겠습니다. 용어 때문에 혼동될 수 있지만 Pass by value와 Pass by reference는 인자로 보내는 변수가 "Value Type이냐, Reference Type이냐" 와는 상관이 없습니다. Value Type을 Pass by val..

C#을 공부하다 보면 Value Type(값 형식)과 Reference Type(참조 형식)이라는 것을 듣게 됩니다. 이런 것들을 모르고 코딩해도 대체로 원하는 결과를 얻을 수 있습니다. 하지만 가끔가다 코드가 이해하기 힘든 방식으로 동작하거나 생각보다 오버헤드가 큰 경우가 있는데 이런 경우 대부분 Value Type과 Reference Type에 대한 이해가 부족해서 실수를 했기 때문입니다. 또 ref, out, in이라는 키워드나 boxing, unboxing 개념 그리고 stack, heap에 관련된 부분도 Value Type, Reference Type과 밀접한 관련이 있습니다. 따라서 C#을 제대로 배우고 싶다면 Value Type, Reference Type을 아는 것이 필수라고 볼 수 있습니..

오늘 소개해드릴 Library는 Cork Boolean Library입니다. (한글 자료가 너무 부족해서 빌드 및 사용법을 적어봅니당) 이 Library는 두개의 Triangle Mesh를 쉽게 Boolean 작업을 할 수 있게 도와주는 Library 입니다. 라이센스도 LGPL 이므로, 내부 Code를 임의로 변경하지 않는다면, 개발 및 판매 배포시 소스코드를 공개하지 않고 자유롭게 사용이 가능합니다. 마지막으로 성능도 뛰어난 것 같습니다. github.com/gilbo/cork gilbo/cork 3D Boolean / CSG Library. Contribute to gilbo/cork development by creating an account on GitHub. github.com 위의 링크로 ..

가끔 MPIR 라이브러리가 필요할 때가 있습니다. MPIR은 The Multiple Precision Integers and Rationals Library의 약자로 수치연산에 활용됩니다. 아래는 MPIR 라이브러리를 빌드하고 필요한 파일들을 얻는 방법입니다. mpir.org/index.html#release MPIR: Multiple Precision Integers and Rationals Overview MPIR is a highly optimised library for bignum arithmetic forked from the GMP bignum library. It is written in assembly language and C. It is community maintained via t..

이 글은 닷넷 프레임워크와 관련된 용어들을 정리하는 글입니다. 평소 C#을 쓰면서 닷넷 프레임워크라는 말을 많이 들었지만 정확히 어떤 뜻인지는 잘 알지 못했습니다. 최근 시간을 들여 책을 읽고 검색을 하면서 닷넷 프레임워크에 대해 알아보았습니다. 배운 내용을 토대로 닷넷 프레임워크가 무엇인지, C#과 닷넷 프레임워크가 어떤 관계인지 간략하게 나마 설명해보겠습니다. 닷넷 프레임워크 닷넷 프레임워크는 마이크로소프트웨어에서 발표한 응용 프로그램 개발 환경입니다. 사실 위 문장만 보면 닷넷 프레임워크를 이해하기가 쉽지 않습니다. 자세한 내용은 차차 알아보기로 하고 가장 먼저 기억해야 할 것은 닷넷 프레임워크는 환경이라는 것입니다. 일반적인 네이티브 언어(예를 들어 C++)로 만들어진 프로그램들이 운영체제에서 곧..
- Total
- Today
- Yesterday
- 참조 형식
- AABB
- RubiksCube
- Scriptable Render Pipeline
- MeshProcessing
- 루빅스큐브
- Mesh
- RL
- collision detection
- NDC
- Mesh Processing
- C#
- reference type
- perspective projection
- VTK
- 값 형식
- Bounding Volume Hierarchy
- SRP
- DirectX12
- transform
- opengl
- 강화학습
- Unity
- Unreal
- CollisionDetection
- Transformation
- value type
- normalized device coordinate
- 유니티
- 최적화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |