전체 글 썸네일형 리스트형 [OpenGL] SSBO (Shader Storage Buffer Object) SSBO는 shader가 직접 읽고 쓸 수 있는 buffer 객체VBO와 마찬가지로 GPU memory의 data 객체이지만, shader가 data에 어떻게 접근하는지 차이가 있음VBO와의 차이VBO: VAO가 buffer data를 해석하여 Vertex Shader의 attribute로 전달 SSBO: Shader가 binding된 buffer memory의 구조를 직접 해석하여 읽고 씀SSBO 사용 흐름1. SSBO 생성 glCreateBuffers (n, buffers)n: 생성할 buffer 개수buffers: 생성된 buffer ID를 받을 위치 SSBO로 사용할 buffer object 생성 2. Buffer memory 및 data 설정glNamedBufferData(buffer, siz.. 2026. 8. 20. 10:54 [OpenGL] VAO & VBO VAO & VBOVBO (Vertex Buffer Object): rendering에 사용할 vertex data가 저장되는 bufferVAO (Vertex Array Object): VBO의 vertex data를 vertex shader에 전달하기 위한 설정을 저장하는 객체※ rendering에는 주로 VAO & VBO, simulation 계산에는 주로 SSBO를 사용 VBO는 단순히 data가 저장된 buffer일 뿐이므로, OpenGL이 내부 data를 사용하려면 각 data를 어떻게 해석하고 가져올지에 대한 설정을 알아야 한다.VAO는 각 vertex attribute(position, normal 등)가 어떤 VBO에서 어떤 형식으로 data를 가져올지에 대한 설정을 가지고 있다.render.. 2026. 8. 12. 19:50 QT Signal & Slot 방식 Qt의 Signal & Slot 방식은 객체 간에 event 발생이나 상태 변화를 전달하기 위해 사용하는 방법이다. 객체에서 특정 event가 발생하면 signal이 emit되고, 이 signal은 connect를 통해 미리 연결된 slot(function)으로 전달되어 실행되는 구조이다. Connection 설정signal과 slot(function)의 연결은 connect를 통해 설정한다.connect를 호출하면 Qt는 어떤 sender의 signal이 어떤 receiver의 slot과 연결되는지 connection을 등록한다. connect(sender, signal, receiver, slot)sender: signal을 발생시키는 객체signal: sender가 emit하는 signalrecei.. 2026. 8. 8. 18:59 XPBD (Extended Position-Based Dynamics) 논문 링크: https://dl.acm.org/doi/epdf/10.1145/2994258.2994272XPBD는 기존 PBD의 constraint stiffness의 적용이 timestep과 solver iteration 수에 따라 다르게 보이는 문제를 개선하기 위해 제안된 방법이다.요약기존 PBD는 같은 stiffness를 사용하더라도 timestep이나 solver iteration 수에 따라 실제 simulation에서 나타나는 stiffness가 달라진 것처럼 보이는 문제가 있다.XPBD는 기존 PBD solver의 계산 구조는 유지하면서, constraint의 position 보정 계산에서 compliance와 Lagrange multiplier를 도입하여 기존 PBD의 문제를 개선했다. 기존.. 2026. 7. 30. 09:55 Gauss–Seidel Solver vs Jacobi Solver 물리 시뮬레이션은 여러 constraint를 반복적으로 계산하여 vertex의 위치를 보정한다.Jacobi Solver와 Gauss-Seidel Solver는 모두 constraint를 반복해서 해결하는 iterative solver이지만, 계산된 보정값을 언제 적용하는가에서 차이가 있다.Gauss–Seidel Solver vs Jacobi SolverConstraint 예시세 개의 vertex A, B, C가 연결되어 있고, 다음 두 개의 distance constraint가 있다고 가정한다- Constraint 1: A-B 사이의 거리 유지- Constraint 2: B-C 사이의 거리 유지현재 vertex의 위치가 어긋나 두 constraint가 모두 위반된 상태라면, solver는 다음 순서로 c.. 2026. 7. 11. 01:27 AABB(Axis-Aligned Bounding Box) vs OBB(Oriented Bounding Box) AABB(Axis-Aligned Bounding Box)AABB는 world coordinate의 축과 평행한 box로 물체를 감싸는 bounding box각 면이 x, y, z축과 평행하기 때문에 box의 방향을 별도로 저장할 필요가 없으며, 물체를 구성하는 vertex의 축별 최솟값과 최댓값만으로 쉽게 생성할 수 있다. 즉, AABB는 두 점 min과 max만으로 표현할 수 있어 구조가 단순하고 계산이 빠르다. min = (min_x, min_y, min_z)max = (max_x, max_y, max_z)OBB(Oriented Bounding Box)OBB는 AABB와 달리 box의 축이 world coordinate에 고정되지 않고, 물체의 방향에 맞게 회전할 수 있는 bounding box장점:.. 2026. 6. 17. 20:18 BVH 기반 충돌 탐지 BVH란 무엇인가BVH(Bounding Volume Hierarchy)는 geometry를 bounding volume으로 묶어서 계층적으로 관리하는 tree 구조 BVH 구조Root node: 전체 geometry를 포함하는 bounding boxInternal node: 하위 node들의 bounding volume을 포함하는 중간 단계의 node Leaf node: 실제 triangle, edge, vertex 같은 primitive를 가짐즉, 상위 node의 bounding box는 하위 node에 포함된 모든 geometry를 감싸도록 구성된다.※ 대부분 이진 트리로 구성한다 Character-Cloth 충돌에서의 사용충돌 탐지를 위해서는 우선 각 cloth primitive와 충돌할 가능성이 .. 2026. 6. 10. 22:26 Edge Coloring in Cloth Simulation Edge ColoringEdge Coloring은 같은 vertex를 공요하는 edge끼리 같은 color를 갖지 않도록, edge에 color를 배정하는 방법여기서 color는 실제 edge rendering 색상을 의미하는 게 아니라, edge들을 분류하기 위한 group label서로 연결된 edge는 같은 color를 가질 수 없다같은 color에 속한 edge들은 서로 vertex를 공유하지 않는다 의류 시뮬레이션에서 필요 이유문제 상황의류 시뮬레이션에서는 Edge 단위 계산 이후, 보통 해당 edge의 양쪽 vertex의 값을 동시에 수정함문제는 병렬 계산할 때, 같은 vertex를 가지는 두 개의 edge를 동시에 계산하면, 서로 다른 thread가 같은 vertex를 동시에 update 하.. 2026. 6. 5. 20:24 이전 1 2 3 4 ··· 10 다음