본문 바로가기

도전57

Bounding Volumes 3D 그래픽스에서 Bounding Volumes(경계 볼륨)은 객체 또는 그룹의 외곽을 근사적으로 표현하는 기법입니다. 이는 객체의 충돌 감지, 가시성 테스트 및 렌더링 최적화와 같은 작업에서 유용하게 사용됩니다. Bounding Volumes는 다양한 형태로 사용될 수 있으며, 가장 일반적인 형태는 다음과 같습니다. 1. Bounding Box (경계 상자): Bounding Box는 가장 간단한 형태의 경계 볼륨입니다. 이는 3차원 공간에서 객체를 사각형 상자로 근사화하는 방법입니다. 상자의 크기는 최소한의 정보만을 포함하도록 결정되며, 일반적으로 객체의 최소 및 최대 꼭짓점을 둘러싸는 가장 작은 상자로 정의됩니다. 2. Bounding Sphere (경계 구): Bounding Sphere은 객체를.. 2023. 5. 13.
3D Computer Graphics (8) object picking? 3D 물체를 마우스 클릭이나 터치와 같은 행동을 할 때 어떻게 이를 감지할까? 픽셀을 선택했다고 해도 이 픽셀이 어떤 3D 물체 것인지도 알 수 없다. 2차원에서는 힘들다. 그렇다면 3차원의 기하적인 추론을 통해 달성할 수 있지 않을까? Z좌표가 없다고 하면 스크린 상에서 마우스 포인터의 좌표는 (x, y, 0) 일 것이다. 이때 우리는 ray를 한 번 고려해보자. 시작점이 있고 한쪽으로 무한하게 뻗어나가는 직선이다. z 축 방향으로 모두 뻗어나간다고 할 때, ray의 정의는 시작점(x, y)과 direction vector(0,0,1)로 표현될 수 있지 않을까? 그럼 이 ray가 누구랑 부딪치는지 판별을 하면 되지 않을까? 근데 viewport에서 오브젝트에 대한 정보가 있.. 2023. 4. 29.
3D Computer Graphics (7) 오일러 변환(Euler transformation)은 3차원 공간에서 회전과 이동을 모두 수행하는 선형 변환이다. 오일러 변환은 3개의 변환 축(roll, pitch, yaw)을 사용하여 객체를 움직이는 방법을 설명한다. 각 축은 각도를 기준으로 회전하며, roll은 x 축을 기준으로, pitch는 y 축을 기준으로, yaw는 z 축을 기준으로 회전한다. 이 세 축의 회전 각도를 조합하여 3D 객체를 움직일 수 있다. 오일러 각은 다음과 같이 나타낼 수 있습니다. 1. XYZ 회전 x, y, z 축으로 회전하는 각도를 나타냅니다. 이 회전 순서는 x축 -> y축 -> z 축 순서로 이루어집니다. 2. XZY 회전 x, z, y 축으로 회전하는 각도를 나타냅니다. 이 회전 순서는 x축 -> z 축 -> y.. 2023. 4. 26.
3D Computer Graphics (6) 보호되어 있는 글 입니다. 2023. 4. 15.
3D Computer Graphics (5) GPU에 의해서 렌더링이 어떻게 수행되는지 알아보고 그중에서 View transform에 대해 조금 더 알아보자. 우선 GPU Rendering Pipeline은 다음과 같이 구성되어 있다. Polygon mesh의 정점들은 vertex array에 저장이 되어있다. 이러한 정점들을 vertex shader가 병렬적으로 한 번에 하나씩 처리하면서 다양한 연산이 적용된다. 그 이후 각 정점의 정보를 사용해 Rasterizer 과정을 거친다. 이 과정에서 삼각형을 재조립한 이후 각 삼각형의 내부 픽셀의 색상을 결정할 정보를 각 픽셀마다 저장하는 작업을 거친다. 이 과정을 하드웨어를 통해 이루어진다. 이를 fragment라고 한다. 이 픽셀에 저장된 정보를 가지고 fragment shader가 각 픽셀의 색상.. 2023. 4. 15.
기억장치와 PLD(2) 2023.04.02 - [도전] - 기억장치, PLD (1) 기억장치, PLD (1) 알아볼 것. 기억장치의 종류와 특성 RAM, ROM의 내부 구조 및 동작원리 PLD의 구조 및 동작원리 (2) 기억장치. 처리할 프로그램과 데이터를 기억하거나, 처리한 후의 결과를 기억을 하는 장치이다. chinggin.tistory.com PLD 프로그램이 가능한 전자 퓨즈선으로 연결된 게이트의 배열로 구성된 집적회로이다. 디지털 시스템의 설계를 위해 PLD를 사용합니다. PLD를 이용하게 되면 복잡한 논리회로를 하나의 직접회로로 프로그래밍할 수 있어 필요한 소자들의 수와 비용을 절감할 수 있는 장점이 있습니다. 주로 AND 게이트와 OR 게이트의 배열 구조를 갖는 집적회로입니다. 결국 PLD는 논리요소들이 배열 행태.. 2023. 4. 4.
기억장치, PLD (1) 알아볼 것. 기억장치의 종류와 특성 RAM, ROM의 내부 구조 및 동작원리 PLD의 구조 및 동작원리 (2) 기억장치. 처리할 프로그램과 데이터를 기억하거나, 처리한 후의 결과를 기억을 하는 장치이다. 그중 주 기억장치의 RAM, ROM, PLD에 대해서 알아볼 것이다. 기억장치는 2진 기억소자를 모아놓은 것을 기억장치라고 할 수 있고 이 2진 기억소자를 메모리 셀이라고 한다. 기억장치에 정보가 기억되는 경우 내부에 2진 비트들의 조합이 배열되어 데이터를 기억한다. 2진 데이터가 기억장치에 저장되는 단위를 word라고 한다. 이 word는 m개의 비트로 구성된다. m은 8의 배수이다. 각 단어의 위치는 address로 부여한다. 기억장치의 성능은 정보를 읽거나 기록하는 속도에 좌우된다. 한 워드를 읽어.. 2023. 4. 2.
3D Computer Graphics (2) 2023.04.01 - [도전] - 3D Computer Graphics (1) 3D Computer Graphics (1) 멋진 3D 인터랙티브 홈페이지를 발견했다. 나도 한번 만들고 싶었다. https://zero.tech/ ZERO - Distribute the Future zero.tech 이를 위해 무엇이 필요한지 정보를 수집하던 도중 여러 키워드가 나왔다. 1. Three. chinggin.tistory.com 이어서 알아보자. Rigging 가끔 움직임을 표현해야 하는데, 이를 위해 skeleton을 사용한다. 이러한 뼈를 만들게 되면 폴리곤 메시에 넣고 움직임(애니메이션)을 구현한다. 뼈와 폴리곤 메시의 상관관계를 정하는 작업을 간단하게 Rigging이라고 한다. 이후 뼈를 통해 애니메이션.. 2023. 4. 1.
3D Computer Graphics (1) 멋진 3D 인터랙티브 홈페이지를 발견했다. 나도 한번 만들고 싶었다. https://zero.tech/ ZERO - Distribute the Future zero.tech 이를 위해 무엇이 필요한지 정보를 수집하던 도중 여러 키워드가 나왔다. 1. Three.js (+gsap) 2. HTML5, CSS, JS 3. Shader ( GLSL) 4. 3D Computer Graphics 5. 선형대수학, 기하학.. 그래서 이번 시리즈는 하나씩 관련 정보를 찾고 이를 구현하는 과정이다. 구현은 아마 회사 홈페이지에 적용할 수 있지 않을까 싶다. Three.js는 사실 몇 가지 예제를 만들어 보았다. WebGL의 상당 부분이 쉬운 API로 제공되어 간단하고 빠르게 만들 수 있지만 실제로 목표로 잡은 홈페이지기.. 2023. 4. 1.
레지스터와 카운터(2) 보호되어 있는 글 입니다. 2023. 3. 26.