물리 기반 렌더링(Physically Based Rendering, PBR)은 컴퓨터 그래픽에서 실제 물리 법칙을 기반으로 재질과 광원의 상호작용을 모델링하는 기법입니다. 이 방법론은 광원, 카메라 위치, 재질의 특성 등 실제 세계의 물리적 조건을 고려하여, 더욱 사실적이고 일관된 이미지를 생성합니다. PBR은 비디오 게임, 영화, 시각화 소프트웨어 등 다양한 분야에서 널리 사용됩니다. PBR의 핵심 요소 에너지 보존: PBR에서는 빛의 반사와 흡수가 에너지 보존의 법칙을 따르도록 모델링됩니다. 이는 재질이 받는 빛의 양이 반사되고 흡수되어 재질의 색상과 광택에 영향을 미치는 방식을 사실적으로 재현합니다. 재질의 물리적 속성: PBR은 재질의 물리적 특성을 정확하게 표현하기 위해 금속성(metalness..
OpenGL에서 현재 texture를 눈으로 확인하며 디버깅하고 싶을 때 texture를 bmp파일로 저장하여 디버깅 할때 아래와 같이 한다. 이때 중요한 함수가 glGetTexLevelParameteriv인데 이것은 현재 texture 현재 mipmap level예제에서는 level가 1개 이므로 0이다.)의 parameter를 얻는 함수이다. 저장할 때는 32비트 bmp로 저장한다. glGetTexImage는 현재 texture의 pixel을 얻어온다. 이때 32비트 bmp는 GL_BGRA이므로 format을 GL_RGBA로 하면 색깔이 뒤집힌다. #define GL_BGRA 0x80E1 // Use this for 32bit bmp GLint cx, cy, format, bpp; // 저장할 tex..
OpenGL에서 bmp파일을 로딩하여 texture를 생성하는 코드이다. bmp는 24/32비트만을 지원한다. 15,16비트와 256칼라는 지원하지 않는다. glTexImage2D로 생성하기 때문에 다음과 같이 필터가 셋팅되어 있어야 한다. #define GL_BGRA 0x80E1 // Use this for 32bit bmp #define GL_BGR_EXT 0x80E0 void LoadBmp() { glBindTexture(GL_TEXTURE_2D, tex); FILE *fp = fopen("c:\\cap2.bmp", "rb"); if (!fp) return; BITMAPFILEHEADER bfh; BITMAPINFOHEADER bih; fread(&bfh, 1, sizeof(BITMAPFILEHEA..
안드로이드에서 OpenGL ES를 사용하려면 가장 간단하게 GLSurfaceView를 사용하면 된다.GLSurfaceView를 생성하고 GLSurfaceView.Renderer를 구현하면 기본적인 뼈대가 완성 된다.아래의 예제는 화면을 빨간색으로 지우는 단순한 예제이다. package com.duongame.opengl; import android.opengl.GLSurfaceView;import android.support.v7.app.AppCompatActivity;import android.os.Bundle; public class MainActivity extends AppCompatActivity { GLSurfaceView glSurfaceView; @Override protected void..
NVIDIA와 INTEL 그래픽카드는 데스크탑에서 EGL을 사용할수 없다. 그러므로 OPENGL ES를 사용할수 없다.AMD는 EGL을 통해서 데스크탑 OPENGL ES를 구현하고 있다. Using OpenGL ES on desktops differs from IHV to IHV. While NVIDIA and Intel expose OpenGL ES on desktop via WGL/GLX extensions (e.g. http://opengl.delphigl.de/gl_listreports.php?listreportsbyextension=WGL_EXT_create_context_es_profile), AMD exposes it through EGL.
- Total
- Today
- Yesterday