본문 바로가기

Opengles 3.0 with Android25

9_4 엠보싱 효과 void EdgeDetection::Render(){ SetUpPerspectiveProjection(); // 3차원 원근 효과 적용 // 원숭이 3d obj 렌더링을 한다. // FBO에 렌더링이 되고, 퐁라이팅이 적용된다. RenderObj(); // FBO를 2차원 평면에 렌더링 하기 위한 ortho Projection 적용 SetUpOrthoProjection(); // 엠보싱 효과 적용 EdgeDetect();}void EdgeDetection::RenderObj(){ // 1. 현재 바인딩된 기본 프레임버퍼(Default Framebuffer)의 ID를 가져옵니다. // 이는 나중에 프레임버퍼를 기본 상태로 복원하기 위해 .. 2024. 12. 29.
9.3 툰 셰이딩: 엣지 디텍팅과 카툰화 툰 셰이딩을 구현하기 위해서는 **엣지 디텍팅(Edge Detection)**을 먼저 수행하고, 경계가 아닌 영역을 **카툰화(Cartoonization)**하는 두 단계를 거칩니다.엣지 디텍팅:소벨 마스크를 사용해 주변 픽셀의 변화량(Gradient)을 계산.변화량이 GradientThreshold를 초과하면 경계로 판단.카툰화:경계가 아닌 영역을 양자화(Quantization)하여 단순화된 색상 표현.quantizationFactor 값에 따라 보간 정도와 단색화 수준 조정.    1. 엣지 디텍팅 (Edge Detection)Input 설정pixelSize (픽셀 크기): 1 / Texture Size로 계산되며, 텍스처 좌표에서 픽셀 간격을 나타냅니다. x, y 방향에서 각 픽셀의 크기를 정의하는.. 2024. 12. 25.
Chapter 9.2 Gawsian Blur ( 2 step ) 가우시안 커널은 가우시안 분포(정규 분포)를 기반으로 한 값들의 집합으로, 이미지를 부드럽게(블러링) 만들거나 노이즈를 제거하는 데 사용됩니다. 커널의 크기와 형태는 가우시안 함수의 매개변수에 따라 달라집니다.   Blur를 2 pass로 구현한 내용objLoader + phong shader로 원기둥을 fbo1->  textue1 렌더링 하고horizontal blur 4 샘플링으로 fbo2 -> texture 2 렌더링을 할때, 바인딩은 texture1을 해주어 input texture로 사용한다.그리고 texture2를 바인딩 하고 vertical blur 4 샘플링으로 블러를 적용하는 방식이다. 삽질 했던 부분은 texture2를 바인딩 하고 샘플러로 들어가는 부분을 제대로 설정하지 않아서hori.. 2024. 12. 1.
Chapter 7.5. displace map Initialize//! ObjLoader 클래스 생성자ObjLoader::ObjLoader(Renderer* parent){ // 부모 렌더러 객체가 없는 경우, 함수 종료 if (!parent) return; // 1. 렌더러 관련 객체 설정 RendererHandler = parent; ProgramManagerObj = parent->RendererProgramManager(); TransformObj = parent->RendererTransform(); modelType = ObjFileType; // 2. 깊이 테스트 활성화 glEnable(GL_DEPTH_TEST); // 3. 텍스처 이미지 로드 (컬러 텍스처) cha.. 2024. 11. 18.