Public/Graphics(12)
-
더블 버퍼링,수직동기화
주로 컴퓨터 그래픽에서 사용되는 용어로서 비디오 메모리만을 사용한 싱글 버퍼링으로 그래픽을 그릴 경우 데이터를 저장하는 동안에는 다음 그림의 데이터를 전송할 수 없기 때문에 지우고 그리고 지우고 그리고 할 경우 필연적으로 발생하는 깜빡임, 찢어짐 등의 상황을 막기 위해서 사용되는 기법이다. 싱글 버퍼링은 비디오 메모리(프론트 버퍼)만을 사용하는데 반하여 예비 버퍼(백 버퍼)를 두어 먼저 버퍼2에 그림을 보내고 그것을 다시 버퍼1로 보낸 다음 버퍼 1의 데이터를 처리하는 동안 다시 버퍼 2에 그림을 보내면 데이터의 전송과 처리가 막히는 일이 없어져서 깜빡임 현상이 사라지게 되는 것이다. 그래서 비단 게임 뿐만이 아니라 그림을 띄워야 하는 프로그래밍을 해야 할 경우에는 반드시 더블버퍼링 API를 찾아보고 적..
2023.06.25 -
색상버퍼(ColorBuffer),색상깊이(ColorDepth),RGBA
색상은 색상을 혼합해서 각 픽셀에 대한 특정 색상을 생성한다. 색깔 혼합에 대한 일반적인 방법은 빨강,녹색,파랑 (RGB)이 3가지 색상을 함께 섞는 것이다. 이 RGB 색깔의 다양한 세기가 결합해 색상의 범위가 결정된다. 현대의 수많은 디스플레이가 RGB외의 다양한 색상 포맷을 지원하지만, 대부분의 비디오 게임은 RGB로 최종 색상을 산출한다. RGB값이 모니터 디스플레이에서 다른 색상 포맷으로 변경되는지 또한 그렇지 않은지는 게임 프로그래머가 다룰 수 있는 영역 밖에 있다. 그런데 여러 게임은 내부적으로 게임 그래픽 계산을 위해 다양한 색상 표현을 사용한다. 예를 들어 수많은 게임은 내부적으로 투명도를 지원하기 위해 알파(Alpha)값을 사용한다. 약어인 RGBA는 RGB색상에 알파값을 추가해서 참조..
2023.06.25 -
레스터 그래픽스 - raster graphics (벡터,래스터)
컴퓨터 과학에서 래스터 그래픽스 이미지 또는 비트맵(비트의 지도라는 뜻 : map of bits)은 일반적으로 직사각형 격자의 화소, 점의 색을 모니터, 종이 등의 매체에 표시하는 자료 구조이다. 오늘날 사용하는 대부분의 디스플레이는 랫터 그래픽스를 사용한다. 래스터 그래픽스는 디스플레이가 2차원 격자 형태의 그림 요소(픽셀)를 갖고 있음을 뜻한다. 이 픽셀은 다양한 색상뿐만 아니라 다양한 빛을 나타낼 수 있다. 이 픽셀들의 색상과 세기의 결합을 통해, 디스플레이를 보는 사람은 이를 연속적인 이미지로 지각하게 된다. 래스터 이미지 : 정사각형 모양의 픽셀(pixel)들이 모여 이미지를 구성한다. 이미지에 표현해야할 물체들이 많이 있어도 속도 저하가 일어나지 않기 때문에(아무리 복잡한 물체가 있는 이미지라..
2023.06.25 -
Z Buffer
가장 먼저 그려지는 건 배경일까 ? 캐릭터일까? 이펙트일까? UI 일까 ? 답은 그려지는 순서는 제멋대로이다. 특정한 명령이나 그룹핑에 따라서 그리는 순서를 조정할 수 있지만 간단하게 "계산이 다 끝난 녀석을 그린다" 이다. 그러니 어느것이 먼저 그려졌는지 알 수 없다. 검은색 공이 먼저 그려졌는지 , 뒤에 있는 하얀색 큐브가 먼저 그려졌는지 알 수 없다 "일단 순서는 상관없이 그린다" 라는 대전제로 시작하겠습니다. 뒤에 있는 오브젝트가 먼저 그려지고 앞에 있는 오브젝트가 그려질 때 뒤에 있는 하얀색 큐브와 앞에 있는 검은색 공이 있습니다. 뒤에 있는 하얀색 큐브가 먼저 그려지고 앞에 있는 검은색 공이 뒤에 그려지면 문제 없이 그려집니다. 그냥 그려진 큐브 위에다가 검은색 공을 덧그리면 되니까요. 이것을..
2022.07.25 -
레스터라이저
레스터라이저는 렌더링 파이프라인에서 중요한 부분이다. 그리고 레스터라이저는 보통은 자주 이야기하지 않는 부분이기도 하다. 굳이 말하자면 이것은 이미 해결된 문제이다. 최종 이미지에서 삼각형이 차지하는 픽셀이 무엇인지 결정한다. 레스터라이저는 또한 삼각형이 차지하는 픽셀 위에 각 정점에 해당하는 다른 값들을 보간한다.
2022.07.10 -
그래픽스 파이프라인의 구조
그래픽스 파이프라인이 어떻게 구현됐으며, 특정 GPU에는 어떤 지는 매우 다양하다. 하지만 일반적인 원리는 하나로 요약 정리할 수 있다. [정점지점] 입력 조립 단계는 씬으로부터 데이터(메시,텍스처,재질)를 수집하고 파이프라인에서 사용할 수 있게끔 정리한다. [정점 셰이더] 정점 처리 단계에서는 정점과 정점의 정보를 이전 단계로부터 전달받아 각각의 정점에 정점 셰이더를 수행한다. [정점 후처리] 정점 후처리 단계에서는 좌표 공간 변환 및 화면을 넘어서지 않게끔 기본형(primitive)들을 절단한다. [기본형 조립] 기본형 조립 단계는 각 기본형마다 정점 처리 단계의 출력 데이터를 수집해 다음 단계로 보낸다. [레스터라이저] 레스터라이저는 프로그래밍 가능한 단계가 아니다. 이 단계에서는 입력 데이터로 삼..
2022.07.10