이산적 기법들 최 수 미 smchoi@sejong.ac.kr http://www.sejong.ac.kr/~smchoi.

Slides:



Advertisements
Similar presentations
1 Kim, Sung-Ho School of Computer, Information and Communication Engineering Sangji Univ.
Advertisements

Texture Mapping 년 봄학기 5/23/2014 박경신. OpenGL Texturing  OpenGL 에서 텍스쳐 맵핑 (texture mapping) 을 위한 3 단계 텍스쳐 활성화 glEnable(GL_TEXTURE_2D) 텍스쳐 맵핑방법.
장. 텍스쳐 학습목표 텍스쳐의 정의와 종류를 이해한다. 평면 다각형의 텍스쳐 매핑 방법을 이해한다. 파라미터로 표현된 곡면 다각형의 텍스쳐 매핑 방법을 이해한다. 파라미터로 표현할 수 없는 곡면 다각형의 텍스쳐 매핑 방법을 이해 한다. 텍스쳐 매핑에서 에일리어싱이.
텍스쳐 매핑 실습.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
11장. 텍스쳐 학습목표 텍스쳐의 정의와 종류를 이해한다. 평면 다각형의 텍스쳐 매핑 방법을 이해한다.
그래픽 하드웨어.
모 바 일 게 임 제 작 한국IT전문학교 박재성.
텍 스 처 매 핑.
Chap 9. 텍스쳐(Texture).
음 영 (Shading).
1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용 4장 – 기하학적 객체와 변환
Practice - texture mapping
제 9 장 구조체와 공용체.
제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
학습목표 11장. 텍스쳐 텍스쳐의 정의와 종류를 이해한다. 평면 다각형의 텍스쳐 매핑 방법을 이해한다.
3차원 객체 모델링.
스크래치 언어 이해 스크래치 이용법 습득 고양이가 말을 하며 움직이는 예제 작성
Computer Animation Algorithms and Techniques
C#.
OpenGL PROJECT I T S 우광식 성기영 서창수
JA A V W. 03.
프로그래밍 개요
Chapter03 캔버스(1) HTML5 Programming.
박성진 컴퓨터 프로그래밍 기초 [09] 배열 part 1 박성진
군집 분석.
메모리 관리 & 동적 할당.
Takeo Igarashi The University of Tokyo
마인드 맵.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
USN(Ubiquitous Sensor Network)
그래픽 모듈 편집.
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Clipping 이진학.
4장 기하학적 객체와 변환 - 기하 1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용
정다면체, 다면체와 정다각형, 다각형의 관계 한림초등 학교 영제 6학년 5반 송명훈.
Parallel Mapping 정광일
2D 게임 프로그래밍 BUBBLE BOBBLE 제민경.
2D게임 프로그래밍 프로젝트 총은 사기입니다(가제) 박상윤.
CAD 실습 2013년 2학기.
- 18차시 - 엔딩 크레딧 영상 만들기 - Leading 기능 사용하기 -.
데이터 동적 할당 Collection class.
헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 헤드라인 텍스트 샘플 텍스트
벡터의 성질 - 벡터와 스칼라 (Vector and Scalars) - 벡터의 합 -기하학적인 방법
Chapter 1 단위, 물리량, 벡터.
7장 전위이론 7.2 금속의 결정구조 7.4 인상전위와 나선전위 7.5 전위의 성질.
Chapter 1 단위, 물리량, 벡터.
1. 접선의 방정식 2010년 설악산.
1. 정투상법 정투상법 정투상도 (1) 정투상의 원리
2일차 영상처리 교육.
Animating Pictures with Stochastic Motion Textures
2D 게임 프로그래밍 제안서 김보명.
9 브라우저 객체 모델.
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
게임수학 제 8 장 고급 렌더링.
제 4 장 Record.
어서와 C언어는 처음이지 제21장.
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
: 3차원에서 입자의 운동 방정식 제일 간단한 경우는 위치만의 함수 : 시간, 위치, 위치의 시간미분 의 함수
7 생성자 함수.
6 객체.
Lecture #6 제 4 장. 기하학적 객체와 변환 (1).
타이머를 시작하려면 슬라이드 쇼 메뉴에서 쇼 보기를 클릭하십시오.
Presentation transcript:

이산적 기법들 최 수 미 smchoi@sejong.ac.kr http://www.sejong.ac.kr/~smchoi

버퍼와 사상 버퍼 (buffers) 프레임 버퍼 깊이 버퍼 비트평면(bitplane), 화소(pixel) 이산적 공간과 깊이에서 제한된 해상도 n x m 인 k 비트 요소들의 메모리 블록 프레임 버퍼 n x m 은 화면 해상도와 일치 k 는 얼마나 많은 색을 표시 깊이 버퍼 k 는 지원할 수 있는 깊이 해상도 비트평면(bitplane), 화소(pixel)

사상 알고리즘 (mapping algorithm) 컴퓨터에서 가상의 오렌지를 만들려면 ? 구 (현실감이 떨어짐) 곡면 (보다 많은 제어, 여전히 현실감이 떨어짐) 절차적 모델링 (어느 정도의 무작위성 표현, 많은 다각형 모델) 대안 단순한 모델 -> 상세한 부분은 렌더링 처리 부분으로 추가 사상 알고리즘 (mapping algorithm) 맵을 사용하여 재질 특성과 법선같은 표면 매개변수를 바꿈으로 음영법을 수정

사상 알고리즘의 세가지 주요 접근 방법 텍스처 사상 (texture mapping) : 텍스처를 표면으로 사상함으로써 얻어지는 영상을 표면 렌더링의 한 부분으로 규정 융기 사상 (bump mapping) : 실제 오렌지의 융기와 같은 변형을 생성하기 위해 표면의 형상을 왜곡 환경 사상 (environmental mapping) : 반사광을 추적하지 않으면서도 광선 추적된 영상처럼 보이게 함

텍스처 사상, 융기 사상, 환경 사상의 공통점 개별 화소의 음영을 바꾸며 음영처리의 한 부분으로 구현 일차원, 이차원 또는 삼차원 디지털 이미지로 저장된 맵에 의존 엘리어싱 오류가 발생할 수 있음

텍스처 사상 매개변수형 곡면을 위한 텍스처 맵 텍스쳐 좌표 기하학적 좌표 매개변수 좌표 화면 좌표

고려할 점 텍스처 좌표에서 기하학적 좌표로의 맵 결정 텍스처 공간(흔히 사각형 영역)->삼차원 공간의 임의의 영역 예> 사각형을 구에 사상 화소 단위로 렌더링하기 위해 화면 좌표로부터 텍스처 좌표로의 역사상 한 화소의 음영을 결정할 때 텍스쳐 영상의 어떤 점을 사용할 지 결정 점이 아닌 영역에서 영역으로의 사상 (화소에 대한 것) 엘리어싱 문제 발생 가능성 굴곡진 정현파와 같은 무늬의 모아레(moiré) 패턴

화소의 전이미지 (preimage) 텍스처 공간 객체공간 화면좌표

텍스처 생성에서의 엘리어싱 화소의 중심을 역투영하여 얻어지는 점을 사용하여 텍스처 값을 구함 개선안 : 전이미지 상의 텍스처 맵의 평균에 근거해서 텍스처 값을 할당 (불충분) 규칙적인 텍스처에서 더욱 문제

선형 텍스처 사상을 위한 접근 방법 같은 크기의 텍스처 조각들이 신축되어 표면 조각에 맞추어짐

이단계 사상을 이용한 접근 방법 1단계 : 구, 원기둥, 입방체와 같은 간단한 삼차원 중간단계 표면으로 텍스처 사상

이단계 사상을 이용한 접근 방법 2단계 : 사상된 텍스처를 갖는 중간 단계 표면을 렌더링 되는 표면으로 사상 중간 표면으로 부터의 법선 객체 표면으로 부터의 법선 객체 중심의 사용

OpenGL에서의 텍스처 사상 화소 파이프라인과 기하학적 파이프라인

Glubyte my_texels[512][512]; glTexImage2D(GL_TEXTURE_2D, 0, 3, 512, 512, 0, GL_RGB, GL_UNSIGNED_BYTE, my_texels); glTexImage2D(GL_TEXTURE_2D, level, components, width, height, border, format, type, tarray); Component : 맵으로 효과를 주려고 하는 색 성분(RGBA)의 수 (1-4) Level, border : 텍스처에 대한 섬세한 제어 glEnable(GL_TEXTURE_2D); /* 텍스처 사상을 인에이블 */

텍스처 좌표를 정점들에 할당 glTexCoord2f(s,t);

glBegin(GL_QUAD); glTexCoord2f(0.0, 0.0); glVertex2f(x1, y1, z1); glTexCoord2f(1.0, 0.0); glVertex2f(x2, y2, z2); glTexCoord2f(1.0, 1.0); glVertex2f(x3, y3, z3); glTexCoord2f(0.0, 1.0); glVertex2f(x4, y4, z4); glEnd(); 전체 텍셀 배열을 사용 텍셀 배열의 일부분을 사용

(0.0, 1.0) 의 범위를 넘어서는 s 또는 t 값 지정 텍스처가 반복되도록 함 0.0 또는 1.0 값으로 절단. 즉, (0.0, 1.0) 의 범위보다 아래 또는 위의 값에 대해서는 각기 0.0, 1.0 에서의 값을 사용 반복되는 텍스처를 위한 매개변수 설정 glTexParameteri(GL_TEXTURE_WRAP_S, GL_REPEAT); 절단되는 텍스처 GL_CLAMP 를 사용

텍스처의 확대나 축소 지정 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 앨리어싱 문제 야기 -> 평균 텍셀값 이용 (보다 나은 이미지) GL_NEAREST -> GL_LINEAR (4개의 가장 가까운 텍셀의 평균) 확대 축소

밉맵핑 (mipmapping) 텍셀 배열에 비해서 작은 스크린 공간 영역에 투영되는 객체 OpenGL 은 일련의 축소된 크기의 텍스처 배열 생성을 허용 64x64 배열에 대해서 다음 GLU 함수를 통해 32x32, 16x16, 8x8, 4x4, 2x2, 1x1 배열을 설정 가능 gluBuild2DMipmaps (GL_TEXTURE_2D, 3, 64, 64, GL_RGB, GL_UNSIGNED_BYTE, my_texels); GL 함수를 이용하여 mipmap 들을 자동적으로 설정 glTexparameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);

텍스처와 음영과의 상호작용 텍스처 사상과 투영과의 관계 텍스처의 색 성분에 음영에서 주어지는 색 성분을 곱함 glTexEnvi(GL_TEX_ENV, GL_TEX_ENV_MODE, GL_MODULATE); GL_MODULATE -> GL_DECAL 으로 바꾸면 텍스처의 색이 객체의 색을 결정 : 전사(decaling) 텍스처 사상과 투영과의 관계 OpenGL은 텍스처 값을 찾기 위해서 화면 공간에서 선형 보간을 사용 직교 투영에서는 선형 사상이 적합하지만, 투시 투영에서는 부적절 glHint(GL_PERSPECTIVE_CORRECTION, GL_NICEST);

텍스처 생성 텍스처와 음영과의 상호작용 텍스처 사상과 투영과의 관계 텍스처의 색 성분에 음영에서 주어지는 색 성분을 곱함 glTexEnvi(GL_TEX_ENV, GL_TEX_ENV_MODE, GL_MODULATE); GL_MODULATE -> GL_DECAL 으로 바꾸면 텍스처의 색이 객체의 색을 결정 : 전사(decaling) 텍스처 사상과 투영과의 관계 OpenGL은 텍스처 값을 찾기 위해서 화면 공간에서 선형 보간을 사용 직교 투영에서는 선형 사상이 적합하지만, 투시 투영에서는 부적절 glHint(GL_PERSPECTIVE_CORRECTION, GL_NICEST);

환경 사상 방 가운데 있는 반짝이는 금속 공 이 단계 절차 광선 추적에 의한 방법은 계산량이 너무 많음 텍스처 맵을 환경 맵 또는 반사 맵으로 확장함으로써 원하는 반사를 근사하는 이미지를 얻음 예> 색그림판 29, 30 : Pixar 애니메이션 스튜디오의 Geri’s Game, 반사맵이 육면체 상에서 계산 이 단계 절차 중간 투영 표면에 환경의 이미지를 얻음 예> 방의 중간객체는 상자: 벽, 바닥, 천장에 대응되는 여섯 개의 투영 계산 객체 표면에 텍스처 맵을 옮김 환경의 사상 중간 면으로부터의 사상

OpenGL을 이용한 환경사상 텍스처 좌표의 자동 생성 이미지 스캐닝 또는 장면 투영을 이용하여 텍스처를 생성 glTexGenfv(GL_S, GL_SPHERE_MAP, 0); glTexGenfv(GL_T, GL_SPHERE_MAP, 0); glEnable(GL_TEXTURE_GEN_S); glEnable(GL_TEXTURE_GEN_T);

융기 사상 융기 사상 (bump mapping) 매개변수형 곡면의 법선 교란 표면이 렌더링될 때 표면에서의 법선 벡터를 교란시킴으로써 표면의 외견 상 형상을 변화시킴 법선 교란을 렌더링 동안에 적용할 수 있으면, 부드러운 표면 모델을 사용하면서도 복잡한 표면 모양을 갖도록 렌더링 매개변수형 곡면의 법선 교란 매개변수형 곡면상의 한 점 단위법선 : 편미분 벡터들의 교적 bump function