본문 바로가기

전체 글13

Command Organization and Execution Model MTLDevice MTLDevice 프로토콜은 명령을 실행할 수 있는 하나의 GPU를 나타냅니다. MTLDevice 프로토콜은 장치 속성을 조사, 버퍼 및 텍스처와 같은 다른 장치별 객체를 생성, 실행을 위해 GPU에 제출할 렌더링 및 컴퓨팅 명령을 인코딩하고 대기열에 추가하는 메서드들을 지원합니다. 새로운 command queue를 생성하고 메모리에서 버퍼를 할당하고, 텍스처를 생성하고, 장치의 기능에 대해 쿼리하는 메서드가 있습니다. 시스템에서 기본 장치를 얻으려면 MTLCreateSystemDefaultDevice 함수를 호출하십시오. Command Queue command queue는 command buffer의 큐로 구성되며, command queue는 이러한 command buffer의 실행순.. 2023. 11. 27.
[Learn OpenGL] Textures - 1 객체에 더 많은 세부사항을 추가하기 위해, 각 정점에 색상을 사용하여 흥미로운 이미지를 만들 수 있다는 것을 배웠습니다. 그러나 현실감을 얻기 위해서는 많은 수의 정점이 필요하고, 각 정점마다 색상 속성이 필요하기 때문에 상당한 추가 부담이 생깁니다. 대부분의 예술가와 프로그래머들은 텍스처를 사용하는 것을 선호합니다. 텍스처는 객체에 세부 사항을 추가하는데 사용되는 2D 이미지 입니다. 텍스처를 종이 한 장에 벽돌 이미지가 있는 것으로 가정해봅시다. 이 종이를 3D 집 위에 깔끔하게 점어서 집이 돌로 된 외관을 가진 것처럼 보이게 할 수 있습니다. 하나의 이미지에 많은 세부사항을 넣을 수 있기 때문에, 추가적인 정점을 지정할 필요 없이 객체가 매우 세부적으로 보이는 착각을 줄 수 있습니다. 이미지 외에도.. 2023. 11. 20.
OpenGL 용어 정리 Vertex Buffer Vertex Buffer는 말 그대로 버퍼이다. 그저 바이트 배열을 가지고 있는 메모리이다. 다른점이 있다면, GPU VRAM에 있다는 것이다. 여기서 기본적인 컨셉은 내가 그리고 싶은 것의 데이터를 정의(예를 들어 삼각형), 그리고 GPU VRAM으로 보냄 그리고 draw call을 함 여기서 draw call은 GPU VRAM에 있는 데이터를 읽어서 화면에 그리라고 하는 명령. 여기서 우리는 GPU한테 가지고 있는 데이터를 어떻게 해석해야하는지 화면에 어떤식으로 올리는지 알려줘야 함. 그리고 여기서 사용하는 프로그램이 Shader임. Shader는 GPU에서 돌아가는 프로그램임 데이터를 읽어서 화면에 표시하는. unsigned int buffer; glGenBuffers(1,.. 2023. 11. 19.
[Learn OpenGL] Shaders - 3 More Attributes! 이전 장에서 VBO를 채우고, 정점 속성 포인터를 구성하고, 이 모든 것을 VAO에 저장하는 방법을 보았습니다. 이번에는 정점 데이터에 색상 데이터를 추가하려고 합니다. 각 정점 배열에 3개의 float으로 색상 데이터를 추가할 것입니다. 각각의 삼각형 모서리에 빨간색, 녹색, 파란색을 할당합니다 float vertices[] = { // 위치 // 색상 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, // 오른쪽 아래 -0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, // 왼쪽 아래 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 1.0f // 위 }; 이제 정점 쉐이더로 더 많은 데이터를 보내야 하기 때문에, 정점 속성 입력으로 .. 2023. 11. 18.