분류 전체보기
-
텍스처링? 3D 오브젝트에 이미지를 가져와서 덧씌우는 것. 디테일한 비주얼을 보여줄 수 있다. 텍스처링은 어떻게 해야 할까? 이전 포스트에서 무게중심 좌표계 (Barycentric Coordinates)를 사용했을때는 세 점의 중간의 색깔들을 interpolation해서 자동으로 채우도록 했었다. 같은원리로 이번에는 점 4개(사각형)을 채우는데, 이미지로 채울 것이고, 각 점들은 이미지의 어느 부위에서 색을 가져와서 채울것인지만 결정해주면 텍스처링을 할 수 있다. (텍스처 좌표 Texture coordinates) 텍스처는 이미지의 가로 세로 1x1로 가정한다. (텍스처 좌표는 u 축과 v축으로 나눠서 uv 라고도 부른다) 사각형은 삼각형 두개로 나눌 수 있고, 무게중심 좌표계를 이용해 위치를 특정할 수..
텍스처링 (Texturing), 포인트 샘플링, 리니어 샘플링, bilinear interpolation텍스처링? 3D 오브젝트에 이미지를 가져와서 덧씌우는 것. 디테일한 비주얼을 보여줄 수 있다. 텍스처링은 어떻게 해야 할까? 이전 포스트에서 무게중심 좌표계 (Barycentric Coordinates)를 사용했을때는 세 점의 중간의 색깔들을 interpolation해서 자동으로 채우도록 했었다. 같은원리로 이번에는 점 4개(사각형)을 채우는데, 이미지로 채울 것이고, 각 점들은 이미지의 어느 부위에서 색을 가져와서 채울것인지만 결정해주면 텍스처링을 할 수 있다. (텍스처 좌표 Texture coordinates) 텍스처는 이미지의 가로 세로 1x1로 가정한다. (텍스처 좌표는 u 축과 v축으로 나눠서 uv 라고도 부른다) 사각형은 삼각형 두개로 나눌 수 있고, 무게중심 좌표계를 이용해 위치를 특정할 수..
2023.11.02 -
텍스처링(texturing)이란? 사진을 3차원으로 렌더링된 물체에 입혀주는 기술 직접 색깔을 일일히 지정해주는게 아니라 사진, 이미지등을 입혀주면 편하다. 무게 중심 좌표계 (Barycentric coordinates) https://en.wikipedia.org/wiki/Barycentric_coordinate_system Barycentric coordinate system - Wikipedia From Wikipedia, the free encyclopedia Coordinate system that is defined by points instead of vectors A 3-simplex, with barycentric subdivisions of 1-faces (edges) 2-faces (..
텍스처링, 무게 중심 좌표계 (Barycentric coordinates), 선형 보간 (Linear Interpolation)텍스처링(texturing)이란? 사진을 3차원으로 렌더링된 물체에 입혀주는 기술 직접 색깔을 일일히 지정해주는게 아니라 사진, 이미지등을 입혀주면 편하다. 무게 중심 좌표계 (Barycentric coordinates) https://en.wikipedia.org/wiki/Barycentric_coordinate_system Barycentric coordinate system - Wikipedia From Wikipedia, the free encyclopedia Coordinate system that is defined by points instead of vectors A 3-simplex, with barycentric subdivisions of 1-faces (edges) 2-faces (..
2023.11.02 -
// 내용 추가 예정
선형 보간(lerp)과 구면 선형 보간(slerp)// 내용 추가 예정
2023.11.01 -
C++에서는 네 가지 유형의 캐스트 연산자가 있으며, 각각은 서로 다른 목적과 사용 사례에 대해 설계되어 있다. 이들 캐스트 연산자는 타입 변환을 수행하며, 특정 캐스트 연산자는 추가적인 런타임 검사를 제공한다. static_cast: static_cast는 컴파일 타임에 타입 변환을 수행한다. 관련된 타입 간의 변환에 사용된다(예: 기본 타입 간의 변환, 상속된 클래스 간의 포인터 변환). float f = 10.5; int i = static_cast(f); // float에서 int로 변환 reinterpret_cast: reinterpret_cast는 바이트 레벨에서 타입 변환을 수행한다. 서로 관련이 없는 타입 간의 변환에 사용된다. 이것은 위험할 수 있으며, 제대로 사용되지 않으면 정의되지 않..
C++ 의 캐스팅C++에서는 네 가지 유형의 캐스트 연산자가 있으며, 각각은 서로 다른 목적과 사용 사례에 대해 설계되어 있다. 이들 캐스트 연산자는 타입 변환을 수행하며, 특정 캐스트 연산자는 추가적인 런타임 검사를 제공한다. static_cast: static_cast는 컴파일 타임에 타입 변환을 수행한다. 관련된 타입 간의 변환에 사용된다(예: 기본 타입 간의 변환, 상속된 클래스 간의 포인터 변환). float f = 10.5; int i = static_cast(f); // float에서 int로 변환 reinterpret_cast: reinterpret_cast는 바이트 레벨에서 타입 변환을 수행한다. 서로 관련이 없는 타입 간의 변환에 사용된다. 이것은 위험할 수 있으며, 제대로 사용되지 않으면 정의되지 않..
2023.11.01 -
inline 함수와 #define 매크로 함수는 코드에서 유사한 작업을 수행할 수 있지만, 구문, 기능 및 처리 방식에 많은 차이가 있다. 다음은 inline 함수와 #define 매크로의 주요 차이점이다: 정의 방식: inline 함수는 일반 함수와 같이 정의되며, 인자와 반환 타입을 가진다. #define 매크로는 전처리기 지시자를 사용하여 정의되며, 인자와 반환 타입이 명시적으로 정의되지 않는다. // inline 함수 예제 inline int add(int a, int b) { return a + b; } // #define 매크로 예제 #define ADD(a, b) ((a) + (b)) 타입 검사: inline 함수는 컴파일 타임에 정적 타입 검사를 제공한다. #define 매크로는 타입 검사..
inline 함수와 매크로 함수의 차이inline 함수와 #define 매크로 함수는 코드에서 유사한 작업을 수행할 수 있지만, 구문, 기능 및 처리 방식에 많은 차이가 있다. 다음은 inline 함수와 #define 매크로의 주요 차이점이다: 정의 방식: inline 함수는 일반 함수와 같이 정의되며, 인자와 반환 타입을 가진다. #define 매크로는 전처리기 지시자를 사용하여 정의되며, 인자와 반환 타입이 명시적으로 정의되지 않는다. // inline 함수 예제 inline int add(int a, int b) { return a + b; } // #define 매크로 예제 #define ADD(a, b) ((a) + (b)) 타입 검사: inline 함수는 컴파일 타임에 정적 타입 검사를 제공한다. #define 매크로는 타입 검사..
2023.11.01 -
std::string은 일반적으로 동적 할당 배열(dynamic allocation array)를 사용하여 문자열 데이터를 저장한다. std::string의 구현은 C++ 표준 라이브러리에 따라 다를 수 있지만, 대부분의 구현에서 std::string은 내부적으로 동적 할당 메모리를 사용하여 문자열 데이터를 저장하고 관리한다. 이렇게 동적 메모리를 사용하면 문자열의 크기가 런타임에 변경될 수 있게 해준다. std::string의 일반적인 구현은 다음과 같은 멤버 변수를 포함할 수 있다: Data Pointer: 동적 할당된 메모리의 시작 주소를 저장하는 포인터다. 이 포인터는 문자열 데이터를 저장하는 배열을 가리킨다. Size: 현재 문자열의 길이를 저장한다. Capacity: 동적 할당된 메모리의 전체..
std::string 은 동적 할당 배열이다!std::string은 일반적으로 동적 할당 배열(dynamic allocation array)를 사용하여 문자열 데이터를 저장한다. std::string의 구현은 C++ 표준 라이브러리에 따라 다를 수 있지만, 대부분의 구현에서 std::string은 내부적으로 동적 할당 메모리를 사용하여 문자열 데이터를 저장하고 관리한다. 이렇게 동적 메모리를 사용하면 문자열의 크기가 런타임에 변경될 수 있게 해준다. std::string의 일반적인 구현은 다음과 같은 멤버 변수를 포함할 수 있다: Data Pointer: 동적 할당된 메모리의 시작 주소를 저장하는 포인터다. 이 포인터는 문자열 데이터를 저장하는 배열을 가리킨다. Size: 현재 문자열의 길이를 저장한다. Capacity: 동적 할당된 메모리의 전체..
2023.11.01