음 영 (Shading).

Slides:



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

장. 텍스쳐 학습목표 텍스쳐의 정의와 종류를 이해한다. 평면 다각형의 텍스쳐 매핑 방법을 이해한다. 파라미터로 표현된 곡면 다각형의 텍스쳐 매핑 방법을 이해한다. 파라미터로 표현할 수 없는 곡면 다각형의 텍스쳐 매핑 방법을 이해 한다. 텍스쳐 매핑에서 에일리어싱이.
1. 도형의 연결 상태 2. 꼭지점과 변으로 이루어진 도형 Ⅷ. 도형의 관찰 도형의 연결상태 연결상태가 같은 도형 단일폐곡선의 성질 연결상태가 같은 입체도형 뫼비우스의 띠.
1 Lecture #2 제 1 장. 컴퓨터 그래픽스 시스템과 모델. 2 강의 개요 컴퓨터 그래픽스 개론 및 3D 그래픽스에 대한 개념을 설명한다. n 강의 내용 1. 컴퓨터 그래픽스의 응용 2. 그래픽스 시스템 3. 물리적 이미지 / 합성이미지 4. 인간의 시각 시스템.
1.3.1 원의 방정식. 생각해봅시다. SK 텔레콤에서는 중화동에 기지국을 세우려고 한다. 이 기지국은 중화고, 중화우체국, 뚝방에 모두 전파를 보내야 한다. 기지국은 어디에 세워야 할까 ? 중화동의 지도는 다음과 같다 원의 방정식.
1 산학공동과제도출 범용 3D 프린터를 위한 3D 스캐너 개발 특허법률사무소에서 3D 프린터의 필요성 특허출원자가 자신의 아이디어를 설명하고, 시작품을 구 현해 보기 위한 급속 조형 방법 필요 이를 지원하기 위해 본 특허법률사무소에서는 국내최초로 3D 프린트 제작사업 시작.
The Beginning Of Light Skeaker mgun
제1장. 컴퓨터 그래픽스 시스템과 모델 1 정보통신공학과 박동규.
학습목표 10장. 조명과 음영 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
163535/A25002 컴퓨터 그래픽스 Chap 6. Shading Copyright ⓒ 2001 N Baek.
이산적 기법들 최 수 미
11장. 텍스쳐 학습목표 텍스쳐의 정의와 종류를 이해한다. 평면 다각형의 텍스쳐 매핑 방법을 이해한다.
10장. 조명과 음영 학습목표 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
학습목표 10장. 조명과 음영 조명과 음영의 차이점을 이해한다. 지역 조명모델과 전역 조명모델의 차이점을 이해한다.
Chapter 5. 라이팅(Lighting)
Entity Relationship Diagram
모 바 일 게 임 제 작 한국IT전문학교 박재성.
Chap 9. 텍스쳐(Texture).
그래픽 컬러처리.
전자기파 전자기파의 분류 전자기파의 발생기구에 따른 분류 장파, 라디오파(방송파) LC회로: 고전 전자기학 이론
Open Graphics Library 팀 명 : Spes 송정웅 김정환
CHAPTER 04 안테나 기초 Antenna Basics
목차 개 발 동 기 및 목 표 개 발 환 경 자 기 장 시 뮬 레 이 션 방 법
음영법 최 수 미
제 1 장. 컴퓨터 그래픽스 시스템과 모델 - 3D 컴퓨터 그래픽스 구조 - OpenGL API 개요
학습목표 8장. 가시성 판단 후면제거의 정의와 처리방법을 이해한다. 절단작업의 정의와 처리방법을 이해한다.
디지털영상처리 및 실습 대구보건대학 방사선과.
Lecture #9 제 6장. 음영법(Shading).
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
학습목표 11장. 텍스쳐 텍스쳐의 정의와 종류를 이해한다. 평면 다각형의 텍스쳐 매핑 방법을 이해한다.
Kyoungju Park Computer Graphics Kyoungju Park
렌더링.
Hanyang University Jungsik Park
3차원 객체 모델링.
OpenGL PROJECT 우광식 성기영 서창수 이인주.
제4장 제어 시스템의 성능.
별의 밝기와 거리[2] 밝다고 가까운 별은 아니야! 빛의 밝기와 거리와의 관계 별의 밝기 결정.
Ⅲ. 이 차 방 정 식 1. 이차방정식과 그 풀이 2. 근 의 공 식.
피타고라스 정리 Esc.
광원 제어 하기.
수학 토론 대회 -도형의 세가지 무게중심 안다흰 임수빈.
(생각열기) 거울과 일반적인 물체에서 빛은 어떻게 반사 되는가?
색체 인식과 영상 장치 빛의 합성과 색체 인식 백색광 ex) 햇빛, 형광등, 백열등
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
4장 기하학적 객체와 변환 - 기하 1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용
정다면체, 다면체와 정다각형, 다각형의 관계 한림초등 학교 영제 6학년 5반 송명훈.
Parallel Mapping 정광일
고체역학 2 - 기말고사 1. 단면이 정사각형이고 한번의 길이가 a 일 때, 최대굽힘응력과 최대전단응력의 비를 구하라(10).
다면체 다면체 다면체: 다각형인 면만으로 둘러싸인 입체도 형 면: 다면체를 둘러싸고 있는 다각형
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
게임수학 제 7 장 조명.
평 면 도 형 삼각형 다각형 원과 부채꼴 다각형과 원 학습내용을 로 선택하세요 다각형과 원
(생각열기) 축구장의 전광판에 사용되는 LED에서 나오 는 빛의 3원색은 무엇인가?
2장. 일차원에서의 운동 2.1 평균 속도 2.2 순간 속도 2.3 분석 모형: 등속 운동하는 입자 2.4 가속도
전반사(Total Reflection)와 광통신
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
원의 방정식 원의 방정식 x축, y축에 접하는 원의 방정식 두 원의 위치 관계 공통접선 원과 직선의 위치 관계
Chapter 1 단위, 물리량, 벡터.
4장 벡터 그래픽스 4.1 개 요 4.2 도 형 4.3 3차원 변환과 필터 D 그래픽 멀티미디어시스템
5장 광 파이버 도파로 5.1 계단형 광파이버 (step-index fiber).
Information Communication Technology
빛의 전파.
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
정다면체와 정다각형의 관계 한림초등 학교 영제 6학년 5반 송명훈.
게임수학 제 8 장 고급 렌더링.
제 4 장 Record.
Texture Mapping Example
영역 기반 처리.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
Lecture #6 제 4 장. 기하학적 객체와 변환 (1).
Presentation transcript:

음 영 (Shading)

음영의 개요 음영이 없으면 3차원 물체도 2차원 이미지로 보일 수 있음 빛과 면사이의 상호 관계를 모델에 추가 광원 재질

음영 (Shading) 조명과 재질 광원 Phong 반사 모형 벡터의 계산 다각형 음영 순환적 분할에 의한 구의 근사 OpenGL의 광원 OpenGL에서 재질의 지정 구 모델의 음영처리 전역적 렌더링 - Layman’s physics

조명과 재질 단순화 단순화 조명과 반사를 물리적으로 완전히 모델링 하는 것은 불가능 전역적 방법으로 근사(광선 추적, 방사성 기법) : 그래픽스 파이프라인에 부적합 단순화 국지적 조명 모델(Phong 반사모형 등) : 물리적 정확성과 계산효율의 절충 - 훌륭한 사진작가를 ‘빛의 마술사’라 부름. A와 B 사이에 무수한 반사작용이 발생

조명 모형 전역적 모형 국지적 모형 광원과 표면 사이의 다중 상호 작용 고려 광원과 표선사이의 단일 상호 작용만을 고려 표면상의 한 점은 다른 표면상의 점들에 독립적

빛과 표면 인간

많은 광선들은 투영면의 절단 사각형을 통과하지 않음 빛, 표면과 컴퓨터 이미지 컴퓨터 많은 광선들은 투영면의 절단 사각형을 통과하지 않음 관측자를 투영면으로 대치

표면의 종류 전반사면 난반사면 반투명면

음영 (Shading) 광원 조명과 재질 Phong 반사 모형 벡터의 계산 다각형 음영 순환적 분할에 의한 구의 근사 OpenGL의 광원 OpenGL에서 재질의 지정 구 모델의 음영처리 전역적 렌더링 - Layman’s physics

광원 (Light Sources) 광원 : 위치 (x, y, z) , 방향 (,  ), 파장  조도함수 : I ( x, y, z, , ,  ) 일종의 vector field를 이룸.

백열 전구 광원  I ( x, y, z, , ,  ) 광원에 의한 총 기여도 : 계산이 어려움 : 단순화된 광원 모델이 필요

색 광원 광원은 주파수 의 연속함수이지만 단순한 R-G-B모형을 사용한다.

광원의 종류 주변광(Ambient Light) 점광원(Point Light Source) 집중광선(Spot Light) 원거리 광원(Distant Light)

주변광 (Ambient Light) 균일한 조명 실내의 객체들간의 다중 상호작용에 의해 형성된 조명을 모델 객체의 모든 점에서 동일한 세기의 빛을 받음

점광원 (Point Light Source) 모든 방향으로 균일하게 빛을 방사 조도는 거리의 제곱에 반비례

점광원 (con’t) 대비가 큰 이미지가 만들어진다 실제의 광원은 유한한 크기를 가지고 있으므로 좀더 부드러운 이미지가 만들어짐 주변광을 사용하여 높은 대비 효과를 완화시킬 수 있음 부드러운 조명을 위해 거리항을 수정 암영부 반영부

집중광선 (Spot Light) f I  cos 가 감쇄도를 제어) ( e e : 집중광선 지수 작은 각도로만 빛을 방출 f Is S 작은 각도로만 빛을 방출 가 180이면 점광원이 됨 가 감쇄도를 제어) ( e f I  cos e : 집중광선 지수

집중광선 (con’t) 두 단위 벡터가 주어졌을 경우 cos 값 계산

원거리 광원 점광원 원거리 광원 표면상의 각 점으로부터 광원으로의 방향을 계산해야 함 (많은 시간 소요, 보다 좋은 화질) 방향을 한번만 계산(빠른 계산, 화질이 떨어짐) 광원의 위치 광원의 방향 각 점에 대한 방향 동일 점광원 원거리 광원

음영 (Shading) Phong 반사 모형 조명과 재질 광원 벡터의 계산 다각형 음영 순환적 분할에 의한 구의 근사 OpenGL의 광원 OpenGL에서 재질의 지정 구 모델의 음영처리 전역적 렌더링 - Layman’s physics

Phong 반사 모형 물리적 정확성과 계산효율의 절충 모형이다. 그래픽스 파이프라인에 적합 법선벡터 관측자 광원 완전 반사 방향

Phong 반사 모형 (con’t) 세가지 광-재질 상호 작용 지원 주변반사 난반사 전반사 각 광원이 삼원색에 대하여 별도의 주변광 성분, 난반사광 성분, 전반사광 성분을 갖는다고 가정

Phong 반사 모형 (con’t) 점 P에서 i 번째 광원의 조도 행렬 점 P에서의 반사항 행렬

Phong 반사 모형 (con’t) 광원 i 에 의한 P에서의 적색 세기 점 P에서 적색 세기 점 P의 색의 세기

주변반사 (Ambient Reflection) 주변광의 세기 는 표면의 모든 점에서 같다 반사계수 0에서 1사이의 상수 표면의 재질에 따라 다름

난반사 (Diffuse Reflection) 정오에 더 밝음 일출과 일몰에 어두움 거친 표면 관측각도에 무관 반사되는 양은 광원의 방향에 의존적

난반사 (con’t) 거리 d에의한 감쇄를 포함하면

전반사 (Specular Reflection) 매끄러운 표면 반사가 일정 방향으로 됨 관측자의 위치에 따라 반사량이 다름 전반사의 입사각과 반사각이 같음

전반사 (con’t) : 광택 계수

Phong 모형 Phong 모형에 의한 렌더링 - 재질 특성을 이용하여 각 찻잔이 다르게 보임

음영 (Shading) 다각형 음영 조명과 재질 광원 Phong 반사 모형 벡터의 계산 순환적 분할에 의한 구의 근사 OpenGL의 광원 OpenGL에서 재질의 지정 구 모델의 음영처리 전역적 렌더링 - Layman’s physics

곡면을 다각형의 집합으로 렌더링 함으로써 속도 향상 다각형 음영 세 가지 음영법 1) 평면 음영법 2) Gouraud 음영법 3) Phong 음영법 곡면을 다각형의 집합으로 렌더링 함으로써 속도 향상

평면 음영 (균일 음영) 가정 원거리 관측자 원거리 광원 n, l, v : 상수 각 다각형에 대해서 음영계산이 한번만 이루어짐

평면 음영 (con’t) glShadeModel (GL_FLAT) 문제점 : 다각형 경계선이 뚜렷함

Mach 띠

Gouraud 음영 평면음영과 Gouraud 음영 한 다각형의 음영 계산에 인접한 다각형을 고려 다각형 내의 각 화소가 서로 다름 음영 값을 가짐                                                         glShadeModel(GL_FLAT) glShadeModel(GL_SMOOTH)

Gouraud 음영의 원리 다각형 내의 각 화소에 대한 음영을 개별적으로 계산하는 것은 많은 시간이 소요됨 다각형의 정점에서만 음영 계산 다각형 내의 각 화소에 대해서 정점의 음영을 보간

각 정점에서 법선의 계산 각 정점에 대해서 인접한 다각형들의 법선을 평균 정점에서의 음영 계산

보간 (Interpolation) 정점들의 광도를 보간 N : 법선 벡터 C : 음영 n0 => c0

Phong 음영법 알고리즘 더 많은 계산량, 하드웨어 구현이 더 어려움 각 정점에 대해서 다각형 내의 각 화소에 대해서 인접한 다각형들을 찾는다. 다각형의 법선을 보간함으로써 정점에서의 법선을 계산 다각형 내의 각 화소에 대해서 법선을 보간 음영을 계산 더 많은 계산량, 하드웨어 구현이 더 어려움

법선의 보간

음영 (Shading) OpenGL의 광원 조명과 재질 광원 Phong 반사 모형 벡터의 계산 다각형 음영 순환적 분할에 의한 구의 근사 OpenGL의 광원 OpenGL에서 재질의 지정 구 모델의 음영처리 전역적 렌더링 - Layman’s physics

OpenGL의 광원 8개 까지의 광원을 허용한다 각 광원별로 광원의 위치(점광원) 또는 방향(원거리광원) 주변광, 난반사광, 전반사 광원의 세기 지정 glLightfv(source, parameter, pointer_to_array); glLightf(source, parameter, value);

광원 사용 방법 GLfloat light_0_dir[] ={ 1.0, 2.0, 3.0, 0.0}; GLfloat light_0_pos[] = {1.0, 2.0, 3.0, 1.0}; GLfloat light_0_dir[] ={ 1.0, 2.0, 3.0, 0.0}; GLfloat diffuse_0[] = {1.0, 0.0, 0.0, 1.0}; GLfloat ambient_0[] ={ 1.0, 0.0, 0.0, 1.0}; GLfloat specular_0[] = {1.0, 1.0, 1.0, 1.0}; glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glLightfv(GL_LIGHT0, GL_POSITION, light_0_pos); glLightfv(GL_LIGHT0, GL_AMBIENT, ambient_0); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse_0); glLightfv(GL_LIGHT0, GL_SPECULAR, specular_0); 광원 위치 광원방향 각 종류 별 세기 조명 활성화 첫번째 광원 활성화

광원 사용 방법 (con’t) 전역적 주변광 의 상수 값 설정 GLfloat global_ambient[] = {0.1, 0.1, 0.1, 1.0}; glLightModelfv(GL_LIGHT_MODEL_AMBIENT, global_ambient); glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, a); glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, b); glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, c); 의 상수 값 설정

광원 사용 방법 (con’t) 관측자의 위치 전면과 후면 모두 렌더링 전,후면 모두 렌더링 glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE); 전면과 후면 모두 렌더링 glLightModel(GL_LIGHT_MODEL_TWO_SIDED, GL_TRUE); 전,후면 모두 렌더링

glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, int a) 광택계수 지정 전반사의 광택계수 지정 1  a  128 glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, int a) a = 2.0 a = 25.0

glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, float degree) 전반사의 범위 지정 glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, float degree) 0  degree  90 degree = 10.0 degree = 30.0

음영 (Shading) OpenGL에서 재질의 지정 조명과 재질 광원 Phong 반사 모형 벡터의 계산 다각형 음영 순환적 분할에 의한 구의 근사 OpenGL의 광원 OpenGL에서 재질의 지정 구 모델의 음영처리 전역적 렌더링 - Layman’s physics

OpenGL에서 재질의 지정 재질 지정 함수 glMaterialfv(face, type, pointer_to_array); glMaterialf(face, value); 예) GLfloat ambient[] = {0.2, 0.2, 0.2, 1.0}; GLfloat diffuse[] = {1.0, 0.8, 0.0, 1.0}; GLfloat specular[] = {1.0, 1.0, 1.0, 1.0}; glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient); glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse); glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);

OpenGL에서 재질의 지정 (con’t) 표면의 광택 지수 glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 100.0); 빛을 내는 표면 GLfloat emission[] = 0.0, 0.3, 0.3, 1.0; glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission);

재질 예 Material GL_AMBIENT GL_DIFFUSE GL_SPECULAR GL_SHININESS 결과 Brass 0.3294 0.2235 0.0275 1.0 0.7804 0.5686 0.1137 1.0 0.9921 0.9412 0.8078 1.0 27.89                        Bronze 0.2125 0.1275 0.054 1.0 0.714 0.4284 0.18144 1.0 0.3935 0.2719 0.1667 1.0 25.6 Chrome 0.25 0.25 0.25 1.0 0.4 0.4 0.4 1.0 0.7746 0.7746 0.7746 1.0 76.8

재질 예 (con’t) Copper 0.1913 0.0735 0.0225 1.0 0.7038 0.2705 0.0828 1.0 0.2568 0.1376 0.0860 1.0 12.8                        Gold 0.2473 0.1995 0.0745 1.0 0.7516 0.6065 0.2265 1.0 0.0.6283 0.5558 0.3661 1.0 51.2 Pewter 0.1059 0.0588 0.1137 1.0 0.4275 0.4706 0.5412 1.0 0.3333 0.3333 0.5216 1.0 9.85

텍스쳐 매핑 (Texture Mapping) 텍스쳐를 다각형에 매핑

사전 준비 파일 준비 (스캐너, 인터넷 등) BMP 파일을 읽기 위한 프로그램 준비 윈도우 BMP 형식으로 저장 (확장자 = .bmp) 크기를 64 X 64, 128 X 128, 256 X 256 등과 같이 할것 색상 : 24bit 컬러로 지정 (8bit 흑백도 가능) BMP 파일을 읽기 위한 프로그램 준비 Readbmp.c Readbmp.h

BMP 파일 읽기 readBmpFile 함수 사용 unsigned char *image; int width, height, bitcount; readBmpFile("heesun.bmp", &image, &width, &height, &bitcount);

텍스쳐 지정 형식 glTexImage2D(GL_TEXTURE_2D, level, components, 예 width, height, border, format, type,tarray); 예 glTexImage2D(GL_TEXTURE_2D, 0, 3, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);

텍스쳐 지정 (con’t) 옵션 설정 텍스쳐 매핑 활성화 glEnable(GL_TEXTURE_2D); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); 텍스쳐 매핑 활성화 glEnable(GL_TEXTURE_2D);

텍스쳐 좌표 매핑 glBegin(GL_QUADS); glTexCoord2f(0.0, 0.0); glVertex3fv(vertices[a]); glTexCoord2f(1.0, 0.0); glVertex3fv(vertices[b]); glTexCoord2f(1.0, 1.0); glVertex3fv(vertices[c]); glTexCoord2f(0.0, 1.0); glVertex3fv(vertices[d]); glEnd();

음영 (Shading) 전역적 렌더링 조명과 재질 광원 Phong 반사 모형 벡터의 계산 다각형 음영 순환적 분할에 의한 구의 근사 OpenGL의 광원 OpenGL에서 재질의 지정 구 모델의 음영처리 전역적 렌더링 - Layman’s physics

전역적 렌더링 (Rendering) 광선추적 (Ray Tracing)

전역적 렌더링 (con’t)