Graphics 5

Premultiplied alpha

Premultiplied Alpha - Computer Graphics에서 Alpha값을 표현하는 방법은 두가지 존재. 1) Straight alpha - RGB로 그리는 물체의 색상을 표현 - 독립된 채널의 Alpha값이 존재 * Alpha와 RGB는 독립적, 객체를 fade-in/out할 때 RGB변경없이 Alpha만 변경하여 적용가능 실제 화면에 그릴땐 아래와 같이 계산한다. result = (source.RGB * source.A) + (dest.RGB * (1 - source.A)) 2) Premultiplied alpha - RGB값에 Alpha값이 적용된 값, 그리려는 source의 RGB값에 이미 alpha값이 적용되어 있으므로 alpha값 계산 없이 바로 더하게 된다. result = (..

개발/Graphics 2018.10.30

프레임과 FPS

프레임(Frame) 일반적인 움직임을 TV같은 디스플레이에 표시할 때는 일정한 시간 간격으로 움직임을 잘라내 연속으로 표시한다. 이 한장면에 해당하는 시간 간격을 프레임(Frame)이라고 한다. 프레임은 연속된 움직임의 최소 단위이다. 일반적인 시간은 1초를 60번 나눈 1/60초이다. 이는 일반적으로 디스플레이에ㅐ 표시를 동기화(수직 동기)하는 시간이 1/60초인데 프레임이 이 동기화를 사용하기 때문이다. FPS(Frame Per Second) 프레임의 제일 짧은 시간이 1/60초이지만 이는 게임마다 다를 수 있다. 1/30초나 1/20초를 사용할 수도 있는데, 이렇게 준비하는 시간이 길어지면 그만큼 그림을 만드는 데 사용하는 시간이 두배가 된다는 것을 의미한다. 이를 이용해 조금더 복잡한 처리를 할 ..

개발/Graphics 2018.08.04

OpenGL Texture 그리기

SDL과 OpenGL을 이용한 텍스쳐 그리기소스코드 : https://github.com/huiyueun/GraphicsStudy/tree/master/texture_sample 먼저 SDL_LoadBMP() API를 통해 그림파일(bmp)을 로드한다. (다른 확장자를 로드하려면 SDL_Image 활용)12SDL_Surface* image_surface;image_surface = SDL_LoadBMP("./cat512.bmp");csSDL_Surface는 화면에 그려질 이미지 정보를 담고 있게 된다. 이 데이터 정보를 갖고 있어, 이 데이터 정보를 통해 gl로 그리면 된다.SDL_Surface Data FieldsUint32flags(internal use)SDL_PixelFormat*formatthe..

개발/Graphics 2018.08.04

OpenGL IBO를 사용한 직사각형 그리기

이전 VBO를 이용한 큐브 그리기 포스팅을 통해, 화면에 그리는 오브젝트는 vertex (정점)의 집합을 통해 이루어져 있어 Vertex Buffer를 이용하여 그릴 수 있었다.버텍스 버퍼만을 사용하여 그리는 오브젝트를 다시 살펴보면, 아래와 같이 하나의 사각형은 두개의 삼각형이 필요하고 그에 따라 6개의 정점이 필요했다. 6개의 직사각형이 필요한 큐브 샘플은 6x6, 36개의 정점 배열이 필요했다. 여기에 색상, 노멀벡터 등이 추가 된다면 메모리 사용량은 계속 커지게 된다. (버텍스를 많이 사용하는 복잡한 오브젝트일 수록 메모리량은 증가) 여기서 버텍스 버퍼만을 이용했을 때 단점을 알 수 있다. 위의 그림과 같이 오브젝트를 그릴 때 공유하는(겹치는) 정점이 있게 된다. 이 때 IBO(Index Buff..

개발/Graphics 2018.07.22

OpenGL Super Bible 그래픽스 공부하기 - 3. 파이프라인 따라가기 - 1) 쉐이더간 데이터 전달

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램 OpenGL Super Bible 그래픽스 공부하기 - 2-3. 처음 그리는 삼각형 Part 3 파이프라인 따라가기 - 1) 쉐이더간 데이터 전달 - OpenGL 파이프라인의 각 스테이지가 하는 일 - 작성한 쉐이더를 고정 함수 파이프라인 스테이지에 연결하는 방법 - 그래픽스 파이프라인의 모든 스테이지에서 동시에 사용하는 프로그램을 만드는 방법 3.1 Vertex Shader에 Data 전달하기 - Vertex Shader : 첫번째 프로그래밍 가능 스테이지, 유일한 필수 스테이지 실행 전 버텍스 페칭/버텍스 풀링(정점 풀링)이라는..

개발/Graphics 2018.01.20
반응형