본문 바로가기

전체 글119

Chapter 5.0 Vertex lighting Gouraud Shader는 버텍스 셰이딩 방식으로 조명을 계산해서 부드러운 음영(Smooth Shading)을 만드는 기법.버텍스마다 조명값을 계산하고 프래그먼트 셰이더에 컬러 값을 넘겨서 화면에 출력함. Vertex Shading ( Gouraud ) VS Fragment Shading ( Phong ) Vertex Shading ( Gouraud )Fragment Shading (Phong)조명 계산 위치**정점(Vertex)**에서 조명 계산픽셀(Fragment)**마다 조명 계산보간(interpolation)조명 결과(색상)를 보간법선(Normal)**을 보간 → 픽셀에서 조명 계산성능빠름 (정점 수 적을수록 빠름)느림 (픽셀마다 계산하니까 연산 많음)품질낮음 (하이라이트 등 디테일 손실 있.. 2025. 3. 24.
Chapter 4. OBJ Loader https://github.com/dlgmlals3/OpenGLES3.0_Example/blob/main/Chapter_4/app/src/main/cpp/Scene/ObjLoader.cpp OpenGLES3.0_Example/Chapter_4/app/src/main/cpp/Scene/ObjLoader.cpp at main · dlgmlals3/OpenGLES3.0_ExampleContribute to dlgmlals3/OpenGLES3.0_Example development by creating an account on GitHub.github.com ObjLoader.cpp 참고하시면 됩니다.OBJ Loader 란OBJ Loader는 Wavefront OBJ 파일을 읽어 들여서 3D 모델 데이터를 프.. 2025. 3. 8.
Chapter 3.3 Primitive Restart < Skip > Primitive Restart는 OpenGL에서 인덱스 기반 드로우 호출에서 하나의 프리미티브를 종료하고 새로운 프리미티브를 시작할 수 있도록 해주는 기능입니다.보통 **GL_TRIANGLE_STRIP**이나 **GL_LINE_STRIP**와 같은 프리미티브를 렌더링할 때, 특정 인덱스 값을 만나면 현재 프리미티브가 종료되고 새로운 프리미티브가 시작됩니다.이렇게 하면 드로우 호출을 줄이고 복잡한 구조를 하나의 인덱스 배열로 관리할 수 있습니다. Primitive Restart의 작동 원리Primitive Restart 활성화: glEnable(GL_PRIMITIVE_RESTART) 또는 glEnable(GL_PRIMITIVE_RESTART_FIXED_INDEX)를 사용하여 활성화합니다.Restart 인.. 2025. 2. 24.
Chapter 3.2 Instancing 렌더링 https://github.com/dlgmlals3/OpenGLES3.0_Example/blob/main/Chapter_3/app/src/main/cpp/Scene/InstanceCube.cpp OpenGLES3.0_Example/Chapter_3/app/src/main/cpp/Scene/InstanceCube.cpp at main · dlgmlals3/OpenGLES3.0_ExampleContribute to dlgmlals3/OpenGLES3.0_Example development by creating an account on GitHub.github.com   인스턴스 렌더링(Instanced Rendering)은 동일한 **메시(Mesh)**를 여러 개 렌더링할 때 성능 최적화를 위해 사용된다. .. 2025. 2. 24.