SlideShare a Scribd company logo
1 of 13
3D Max 2주차
목차
• 텍스처
• 빌보드
• 법선 맵핑
• 애니메이션
• 계층구조
• 스키닝
텍스처
• 텍스처 좌표계(uv좌표계)
– 2차원의 텍스처 이미지를 3차원 공간의 폴리곤에 입
히기 위해서 변환하는 기준이 되는 좌표
+ =
V0(u,v) = (0.5, 0.0)
(0.3, 0.4) (0.6, 0.4)
(0.0) (1.0)
(1,1)
(0,1)
텍스처
• uv 좌표계
– 0.0부터 1.0사이의 값을 작는 텍스처 좌표계
• 텍셀 좌표계
– uv 좌표값에 의해 실제로 결정되는 텍스처 이미지의
픽셀값
– 예) uv좌표값: (0.7, 0.3)
– 텍스처 이미지 크기: 100px X200px
– 텍셀값: ( 100px * 0.7, 200px * 0.3 ) = (70px, 60px)
텍스처 필터링
• 텍스처에서 텍셀을 읽어올 때 계단현상을 막기위해 텍
스처 필터를 사용한다.
필터의 종류 효과 명칭
D3DTEXF_NONE 필터를 사용하지 않음
D3DTEXF_POINT 최근점 필터링 최근점 필터링
D3DTEXF_LINEAR 선텍된 텍셀의 상하좌우 평균값 선형 필터링
D3DTEXF_ANISOTRO
PIC
텍스처 왜곡 현상을 막기 위해 보간할 때
여러 픽셀을 취해서 얻는 값
이방성 필터링
D3DTEXF_PYRAMIDA
LQUAD
피라미드 형태로 4개의 샘플을 취한 값 피라미드 쿼드
D3DTEXF_GAUSSIAN
QUAD
샘플 네개의 가우스 필터 값 가우시안 쿼드
멀티 텍스처
• 하나의 폴리곤이 그려질 때 여러장의 텍스처를
중첩하여 출력하는 것
• 텍스처 스테이지: 텍스처를 중첩 출력하기 위해
임시 보관하는 영역
• 텍스처 스테이지는 2개의 입력을 받아서 이 둘을
합성한 다음 다음 단계의 스테이지로 내보낸다.
멀티 텍스처 사용법
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );///0번 텍스처: 0번 텍스처 인덱스 사용
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 );///1번 텍스처: 0번 텍스처 인덱스 사용
g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_GAUSSIANQUAD );/// 0번 텍스처 스테이지의 확대 필
g_pd3dDevice->SetSamplerState( 1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );/// 1번 텍스처 스테이지의 확대 필터
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 );/// 1번째 인자의 컬러를 선택
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );/// 1번째 인자는 텍스처의 컬러값을 쓴다
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );/// 1번째 인자의 알파값을 선택
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );/// 1번째 인자는 텍스처의 알파값을 쓴다
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_MODULATE );
/// MODULATE연산으로 색깔을 섞음
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_TEXTURE );
///1번째 인자로는 텍스처의 값을 사용
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_CURRENT );
///2번째 인자로는 스테이지 0에서 합성된 값을 선택
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
g_pd3dDevice->SetTextureStageState( 2, D3DTSS_COLOROP, D3DTOP_DISABLE );// 이전에 설정된 스테이지2의 설정값을
거하기 위해 사용
g_pd3dDevice->SetTextureStageState( 2, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
빌보드
• 이미지를 사용하여 화면에 출력하기 위해 구현
• 보는 방향이 바뀜에 따라서 이미지가 바뀐다.
• 원리
– 메시의 정면이 항상 카메라를 향하도록 한다.
• 카메라 회전 행렬 중에서 Y축 회전 행렬값을 뽑는다.
• Y축 회전 행렬의 역행렬을 구한다.
• 역행렬을 변환행렬로 해서 메시를 출력한다.
• 응용
– 빌보드에 카메라를 고정시켜서 3D를 사용해서 2D를
이미지를 보여주는 데 사용할 수 있다.
– 빌보드로 배경을 처리하여 연산량을 줄일 수도 있다.
법선 맵핑
• 텍셀에 법선 백터값을 가지고 광원연산을 하여
픽셀단위의 조명을 구현한다
• 종류
– 오브젝트 공간 법선맵: 오브젝트의 원점과 법선 백터의 원점이 같다
– 접선 공간 법선맵: 모든 법선 백터를 각 정점의 접선 공간으로 변환하여 보관
• 벡터-> ARGB
– R = (DWORD)(127.0*x + 128.),G,B,A
– 접선 공간 법선 맵이면 Z=1.0 ,A값을 생략해서 RG(16:16)으로 변환
• 법선맵의 생성
– 높이 맵
• 텍스처를 흑백 이미지로 변환하여 높이 맵을 만들고 이렇게 만들어진 미분 백터들을
RGB값으로 변환하여 텍셀에 저장 한다.
– 오브젝트 비교
• 저폴리곤의 텍셀 위치에서 반직선을 쏴서 고폴리곤과 접하는 지점의 법선백터값
애니메이션
• 종류
– 정점 애니메이션
• 각 정점의 위치를 프레임마다 저장하여 보간
– 계층적 애니메이션
• 메시별 매트릭스를 프레임마다 저장하여 사용
– 뼈대 애니메이션
• 계층적 애니메이션을 발전 뼈대를 만들어 메시를 자식으로 붙임
– 스키닝
• 뼈대에 가중치를 사용 관절 부위 문제 해결(팔레트,쉐이더)
– 역운동학
• 물리학 역학이론을 사용하여 자연스러운 애니매이션을 표현
• 키 프레임 애니메이션
– 전체 애니메이션 중 중요한 몇 개의 프레임에 애니메이션 키값을 등록
하고 나머지 값은 보간을 통해 자동 생성하는 애니메이션
• 선형 보간(위치보간)
– a * (1-t) + b * t ( 0<= t <= 1)
• 사원수 보간(회전보간)
– 회전의 경우 사원수 보간을 사용하고 위치보간시 계산량을 줄일 수 있
다.
계층 구조
• 트리를 사용하여 관절체로 이루어진 물체를 부모
-자식관계의 계층구조로 구현
• 구현
– Vworld = Vlocal * TMchild * TMparent(n) * TMparent(n-1) … * TMparent(1)
• 자식의 직계 부모의 행렬이 먼저 곱해지고 최상위 행렬이 나중에 곱해진다.
부모 메시 자식 메시
부모
최종
행렬
Mparent = Rparent * TMparent
자식
최종
행렬
Mchild = Rchild * TMchild * Mparent
= Rchld * TMchld * (Rparent *
TMparent)
스키닝
• 스키닝: 메시와 메시를 연결할 때 자연스
럽게 이어붙이는 기술들의 총칭
– 메시와메시가 연결부위가 자연스럽게 붙지 않
는 관절 끊김 현상이 있다.
– 메시를 단일한 하나의 메시로 만드는 법(부자
연스러움)
– 메시 정점에 가중치를 사용하는 방법
• 본: 본의 가중치 값과 본 애니메이션 행렬을 적용
• 바이패드
• 매트릭스 팔레트: 가중치에 따라 다른 행렬을 곱함
질문 및 답변

More Related Content

Similar to 3D 기술 세미나2주차

Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadowMoonLightMS
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1MoonLightMS
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자MoonLightMS
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현민웅 이
 
[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기Chris Ohk
 
[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망jdo
 
Higher order procedure2 with conventional interface
Higher order procedure2 with conventional interface Higher order procedure2 with conventional interface
Higher order procedure2 with conventional interface fromitive
 
GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링Mark Choi
 
20120713 ch13
20120713 ch1320120713 ch13
20120713 ch13CARROTCG
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayYEONG-CHEON YOU
 
5-1. html5 graphics
5-1. html5 graphics5-1. html5 graphics
5-1. html5 graphicsJinKyoungHeo
 
09_motionblur
09_motionblur09_motionblur
09_motionblurnoerror
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술henjeon
 
효율적인 2D 게임 개발을 위한 2d skeletal 구조에 관한 연구 - Spine을 중심으로
효율적인 2D 게임 개발을 위한 2d skeletal 구조에 관한 연구 - Spine을 중심으로효율적인 2D 게임 개발을 위한 2d skeletal 구조에 관한 연구 - Spine을 중심으로
효율적인 2D 게임 개발을 위한 2d skeletal 구조에 관한 연구 - Spine을 중심으로Hyunwoo Kim
 
Deep Learning Into Advance - 1. Image, ConvNet
Deep Learning Into Advance - 1. Image, ConvNetDeep Learning Into Advance - 1. Image, ConvNet
Deep Learning Into Advance - 1. Image, ConvNetHyojun Kim
 

Similar to 3D 기술 세미나2주차 (17)

Gpg study5.5
Gpg study5.5Gpg study5.5
Gpg study5.5
 
Depth buffershadow
Depth buffershadowDepth buffershadow
Depth buffershadow
 
[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1[1023 박민수] 깊이_버퍼_그림자_1
[1023 박민수] 깊이_버퍼_그림자_1
 
[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자[1023 박민수] 깊이_버퍼_그림자
[1023 박민수] 깊이_버퍼_그림자
 
제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현제노블레이도 2 ray marching을사용한 구름 표현
제노블레이도 2 ray marching을사용한 구름 표현
 
[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기
 
[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망
 
Bump Mapping
Bump MappingBump Mapping
Bump Mapping
 
Higher order procedure2 with conventional interface
Higher order procedure2 with conventional interface Higher order procedure2 with conventional interface
Higher order procedure2 with conventional interface
 
GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링GameMath-Chapter 08 고급렌더링
GameMath-Chapter 08 고급렌더링
 
20120713 ch13
20120713 ch1320120713 ch13
20120713 ch13
 
Implements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture ArrayImplements Cascaded Shadow Maps with using Texture Array
Implements Cascaded Shadow Maps with using Texture Array
 
5-1. html5 graphics
5-1. html5 graphics5-1. html5 graphics
5-1. html5 graphics
 
09_motionblur
09_motionblur09_motionblur
09_motionblur
 
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술Ndc2010 전형규   마비노기2 캐릭터 렌더링 기술
Ndc2010 전형규 마비노기2 캐릭터 렌더링 기술
 
효율적인 2D 게임 개발을 위한 2d skeletal 구조에 관한 연구 - Spine을 중심으로
효율적인 2D 게임 개발을 위한 2d skeletal 구조에 관한 연구 - Spine을 중심으로효율적인 2D 게임 개발을 위한 2d skeletal 구조에 관한 연구 - Spine을 중심으로
효율적인 2D 게임 개발을 위한 2d skeletal 구조에 관한 연구 - Spine을 중심으로
 
Deep Learning Into Advance - 1. Image, ConvNet
Deep Learning Into Advance - 1. Image, ConvNetDeep Learning Into Advance - 1. Image, ConvNet
Deep Learning Into Advance - 1. Image, ConvNet
 

More from Daniel Shin

<마블 프로젝트> 소설, 시나리오, 만화, 애니메이션. 인문학 육성사업
<마블 프로젝트>  소설, 시나리오, 만화, 애니메이션. 인문학 육성사업<마블 프로젝트>  소설, 시나리오, 만화, 애니메이션. 인문학 육성사업
<마블 프로젝트> 소설, 시나리오, 만화, 애니메이션. 인문학 육성사업Daniel Shin
 
인공지능발표-근태.ppt 유전자 알고리즘을 이용한 영상 특징 추출 경북대학교 박근태
인공지능발표-근태.ppt 유전자 알고리즘을 이용한 영상 특징 추출 경북대학교 박근태인공지능발표-근태.ppt 유전자 알고리즘을 이용한 영상 특징 추출 경북대학교 박근태
인공지능발표-근태.ppt 유전자 알고리즘을 이용한 영상 특징 추출 경북대학교 박근태Daniel Shin
 
0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시
0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시
0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시Daniel Shin
 
게임 프로그래밍의 이해-신동인 2024년2월20일 게시 레볼루션 발표자료
게임 프로그래밍의 이해-신동인 2024년2월20일 게시 레볼루션 발표자료게임 프로그래밍의 이해-신동인 2024년2월20일 게시 레볼루션 발표자료
게임 프로그래밍의 이해-신동인 2024년2월20일 게시 레볼루션 발표자료Daniel Shin
 
리얼 연예 시뮬레이션 기획서 업무추진계획서 윤주용 길태욱 신동인 2011년 4월 7일
리얼 연예 시뮬레이션 기획서 업무추진계획서 윤주용 길태욱 신동인 2011년 4월 7일리얼 연예 시뮬레이션 기획서 업무추진계획서 윤주용 길태욱 신동인 2011년 4월 7일
리얼 연예 시뮬레이션 기획서 업무추진계획서 윤주용 길태욱 신동인 2011년 4월 7일Daniel Shin
 
얌미르2 게임기획서.doc 이왕희 레볼루션 2024년 1월 26일 발행 미완성
얌미르2 게임기획서.doc 이왕희 레볼루션 2024년 1월 26일 발행 미완성얌미르2 게임기획서.doc 이왕희 레볼루션 2024년 1월 26일 발행 미완성
얌미르2 게임기획서.doc 이왕희 레볼루션 2024년 1월 26일 발행 미완성Daniel Shin
 
배틀체스GO 기획서 초안 20220616v2 원작자: 신동인 2024년1월26일 발행
배틀체스GO 기획서 초안 20220616v2 원작자: 신동인 2024년1월26일 발행배틀체스GO 기획서 초안 20220616v2 원작자: 신동인 2024년1월26일 발행
배틀체스GO 기획서 초안 20220616v2 원작자: 신동인 2024년1월26일 발행Daniel Shin
 
뚝딱한국요리 화면설계 2024년 1월 26일 발행 원작자: 김덕호, 신동인
뚝딱한국요리 화면설계 2024년 1월 26일 발행 원작자: 김덕호, 신동인뚝딱한국요리 화면설계 2024년 1월 26일 발행 원작자: 김덕호, 신동인
뚝딱한국요리 화면설계 2024년 1월 26일 발행 원작자: 김덕호, 신동인Daniel Shin
 
3D창작동화전집 디지털컨텐츠 사업계획서 20230404v2.doc
3D창작동화전집 디지털컨텐츠 사업계획서 20230404v2.doc3D창작동화전집 디지털컨텐츠 사업계획서 20230404v2.doc
3D창작동화전집 디지털컨텐츠 사업계획서 20230404v2.docDaniel Shin
 
인터넷 오락실게임 사업계획서_20230320v2.doc
인터넷 오락실게임 사업계획서_20230320v2.doc인터넷 오락실게임 사업계획서_20230320v2.doc
인터넷 오락실게임 사업계획서_20230320v2.docDaniel Shin
 
덴티스 면접 포트폴리오_신동인v1.docx
덴티스 면접 포트폴리오_신동인v1.docx덴티스 면접 포트폴리오_신동인v1.docx
덴티스 면접 포트폴리오_신동인v1.docxDaniel Shin
 
C언어강의 발표자료 1강.pptx
C언어강의 발표자료 1강.pptxC언어강의 발표자료 1강.pptx
C언어강의 발표자료 1강.pptxDaniel Shin
 
포인터와 참조_20220908v2_신동인.pptx
포인터와 참조_20220908v2_신동인.pptx포인터와 참조_20220908v2_신동인.pptx
포인터와 참조_20220908v2_신동인.pptxDaniel Shin
 
resume20220510v3.pptx
resume20220510v3.pptxresume20220510v3.pptx
resume20220510v3.pptxDaniel Shin
 
미니메타버스v5.pptx
미니메타버스v5.pptx미니메타버스v5.pptx
미니메타버스v5.pptxDaniel Shin
 
카툰월드기획서.pptx
카툰월드기획서.pptx카툰월드기획서.pptx
카툰월드기획서.pptxDaniel Shin
 
프로젝트_성공하는_법.pptx
프로젝트_성공하는_법.pptx프로젝트_성공하는_법.pptx
프로젝트_성공하는_법.pptxDaniel Shin
 
3D카툰메이커 완료세미나(복구됨)
3D카툰메이커 완료세미나(복구됨)3D카툰메이커 완료세미나(복구됨)
3D카툰메이커 완료세미나(복구됨)Daniel Shin
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나Daniel Shin
 

More from Daniel Shin (20)

<마블 프로젝트> 소설, 시나리오, 만화, 애니메이션. 인문학 육성사업
<마블 프로젝트>  소설, 시나리오, 만화, 애니메이션. 인문학 육성사업<마블 프로젝트>  소설, 시나리오, 만화, 애니메이션. 인문학 육성사업
<마블 프로젝트> 소설, 시나리오, 만화, 애니메이션. 인문학 육성사업
 
인공지능발표-근태.ppt 유전자 알고리즘을 이용한 영상 특징 추출 경북대학교 박근태
인공지능발표-근태.ppt 유전자 알고리즘을 이용한 영상 특징 추출 경북대학교 박근태인공지능발표-근태.ppt 유전자 알고리즘을 이용한 영상 특징 추출 경북대학교 박근태
인공지능발표-근태.ppt 유전자 알고리즘을 이용한 영상 특징 추출 경북대학교 박근태
 
0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시
0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시
0_소공 디자인.pdf ATM디자인 설계 문서 경북대학교 2024년 2월 20일 게시
 
게임 프로그래밍의 이해-신동인 2024년2월20일 게시 레볼루션 발표자료
게임 프로그래밍의 이해-신동인 2024년2월20일 게시 레볼루션 발표자료게임 프로그래밍의 이해-신동인 2024년2월20일 게시 레볼루션 발표자료
게임 프로그래밍의 이해-신동인 2024년2월20일 게시 레볼루션 발표자료
 
리얼 연예 시뮬레이션 기획서 업무추진계획서 윤주용 길태욱 신동인 2011년 4월 7일
리얼 연예 시뮬레이션 기획서 업무추진계획서 윤주용 길태욱 신동인 2011년 4월 7일리얼 연예 시뮬레이션 기획서 업무추진계획서 윤주용 길태욱 신동인 2011년 4월 7일
리얼 연예 시뮬레이션 기획서 업무추진계획서 윤주용 길태욱 신동인 2011년 4월 7일
 
얌미르2 게임기획서.doc 이왕희 레볼루션 2024년 1월 26일 발행 미완성
얌미르2 게임기획서.doc 이왕희 레볼루션 2024년 1월 26일 발행 미완성얌미르2 게임기획서.doc 이왕희 레볼루션 2024년 1월 26일 발행 미완성
얌미르2 게임기획서.doc 이왕희 레볼루션 2024년 1월 26일 발행 미완성
 
배틀체스GO 기획서 초안 20220616v2 원작자: 신동인 2024년1월26일 발행
배틀체스GO 기획서 초안 20220616v2 원작자: 신동인 2024년1월26일 발행배틀체스GO 기획서 초안 20220616v2 원작자: 신동인 2024년1월26일 발행
배틀체스GO 기획서 초안 20220616v2 원작자: 신동인 2024년1월26일 발행
 
뚝딱한국요리 화면설계 2024년 1월 26일 발행 원작자: 김덕호, 신동인
뚝딱한국요리 화면설계 2024년 1월 26일 발행 원작자: 김덕호, 신동인뚝딱한국요리 화면설계 2024년 1월 26일 발행 원작자: 김덕호, 신동인
뚝딱한국요리 화면설계 2024년 1월 26일 발행 원작자: 김덕호, 신동인
 
3D창작동화전집 디지털컨텐츠 사업계획서 20230404v2.doc
3D창작동화전집 디지털컨텐츠 사업계획서 20230404v2.doc3D창작동화전집 디지털컨텐츠 사업계획서 20230404v2.doc
3D창작동화전집 디지털컨텐츠 사업계획서 20230404v2.doc
 
인터넷 오락실게임 사업계획서_20230320v2.doc
인터넷 오락실게임 사업계획서_20230320v2.doc인터넷 오락실게임 사업계획서_20230320v2.doc
인터넷 오락실게임 사업계획서_20230320v2.doc
 
덴티스 면접 포트폴리오_신동인v1.docx
덴티스 면접 포트폴리오_신동인v1.docx덴티스 면접 포트폴리오_신동인v1.docx
덴티스 면접 포트폴리오_신동인v1.docx
 
C언어강의 발표자료 1강.pptx
C언어강의 발표자료 1강.pptxC언어강의 발표자료 1강.pptx
C언어강의 발표자료 1강.pptx
 
포인터와 참조_20220908v2_신동인.pptx
포인터와 참조_20220908v2_신동인.pptx포인터와 참조_20220908v2_신동인.pptx
포인터와 참조_20220908v2_신동인.pptx
 
resume20220510v3.pptx
resume20220510v3.pptxresume20220510v3.pptx
resume20220510v3.pptx
 
미니메타버스v5.pptx
미니메타버스v5.pptx미니메타버스v5.pptx
미니메타버스v5.pptx
 
카툰월드기획서.pptx
카툰월드기획서.pptx카툰월드기획서.pptx
카툰월드기획서.pptx
 
STL.doc
STL.docSTL.doc
STL.doc
 
프로젝트_성공하는_법.pptx
프로젝트_성공하는_법.pptx프로젝트_성공하는_법.pptx
프로젝트_성공하는_법.pptx
 
3D카툰메이커 완료세미나(복구됨)
3D카툰메이커 완료세미나(복구됨)3D카툰메이커 완료세미나(복구됨)
3D카툰메이커 완료세미나(복구됨)
 
백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나백업을 위한 USB운영체제 완료세미나
백업을 위한 USB운영체제 완료세미나
 

3D 기술 세미나2주차

  • 2. 목차 • 텍스처 • 빌보드 • 법선 맵핑 • 애니메이션 • 계층구조 • 스키닝
  • 3. 텍스처 • 텍스처 좌표계(uv좌표계) – 2차원의 텍스처 이미지를 3차원 공간의 폴리곤에 입 히기 위해서 변환하는 기준이 되는 좌표 + = V0(u,v) = (0.5, 0.0) (0.3, 0.4) (0.6, 0.4) (0.0) (1.0) (1,1) (0,1)
  • 4. 텍스처 • uv 좌표계 – 0.0부터 1.0사이의 값을 작는 텍스처 좌표계 • 텍셀 좌표계 – uv 좌표값에 의해 실제로 결정되는 텍스처 이미지의 픽셀값 – 예) uv좌표값: (0.7, 0.3) – 텍스처 이미지 크기: 100px X200px – 텍셀값: ( 100px * 0.7, 200px * 0.3 ) = (70px, 60px)
  • 5. 텍스처 필터링 • 텍스처에서 텍셀을 읽어올 때 계단현상을 막기위해 텍 스처 필터를 사용한다. 필터의 종류 효과 명칭 D3DTEXF_NONE 필터를 사용하지 않음 D3DTEXF_POINT 최근점 필터링 최근점 필터링 D3DTEXF_LINEAR 선텍된 텍셀의 상하좌우 평균값 선형 필터링 D3DTEXF_ANISOTRO PIC 텍스처 왜곡 현상을 막기 위해 보간할 때 여러 픽셀을 취해서 얻는 값 이방성 필터링 D3DTEXF_PYRAMIDA LQUAD 피라미드 형태로 4개의 샘플을 취한 값 피라미드 쿼드 D3DTEXF_GAUSSIAN QUAD 샘플 네개의 가우스 필터 값 가우시안 쿼드
  • 6. 멀티 텍스처 • 하나의 폴리곤이 그려질 때 여러장의 텍스처를 중첩하여 출력하는 것 • 텍스처 스테이지: 텍스처를 중첩 출력하기 위해 임시 보관하는 영역 • 텍스처 스테이지는 2개의 입력을 받아서 이 둘을 합성한 다음 다음 단계의 스테이지로 내보낸다.
  • 7. 멀티 텍스처 사용법 g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );///0번 텍스처: 0번 텍스처 인덱스 사용 g_pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 );///1번 텍스처: 0번 텍스처 인덱스 사용 g_pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_GAUSSIANQUAD );/// 0번 텍스처 스테이지의 확대 필 g_pd3dDevice->SetSamplerState( 1, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );/// 1번 텍스처 스테이지의 확대 필터 g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 );/// 1번째 인자의 컬러를 선택 g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );/// 1번째 인자는 텍스처의 컬러값을 쓴다 g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );/// 1번째 인자의 알파값을 선택 g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );/// 1번째 인자는 텍스처의 알파값을 쓴다 g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_MODULATE ); /// MODULATE연산으로 색깔을 섞음 g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_TEXTURE ); ///1번째 인자로는 텍스처의 값을 사용 g_pd3dDevice->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_CURRENT ); ///2번째 인자로는 스테이지 0에서 합성된 값을 선택 g_pd3dDevice->SetTextureStageState( 1, D3DTSS_ALPHAOP, D3DTOP_DISABLE ); g_pd3dDevice->SetTextureStageState( 2, D3DTSS_COLOROP, D3DTOP_DISABLE );// 이전에 설정된 스테이지2의 설정값을 거하기 위해 사용 g_pd3dDevice->SetTextureStageState( 2, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
  • 8. 빌보드 • 이미지를 사용하여 화면에 출력하기 위해 구현 • 보는 방향이 바뀜에 따라서 이미지가 바뀐다. • 원리 – 메시의 정면이 항상 카메라를 향하도록 한다. • 카메라 회전 행렬 중에서 Y축 회전 행렬값을 뽑는다. • Y축 회전 행렬의 역행렬을 구한다. • 역행렬을 변환행렬로 해서 메시를 출력한다. • 응용 – 빌보드에 카메라를 고정시켜서 3D를 사용해서 2D를 이미지를 보여주는 데 사용할 수 있다. – 빌보드로 배경을 처리하여 연산량을 줄일 수도 있다.
  • 9. 법선 맵핑 • 텍셀에 법선 백터값을 가지고 광원연산을 하여 픽셀단위의 조명을 구현한다 • 종류 – 오브젝트 공간 법선맵: 오브젝트의 원점과 법선 백터의 원점이 같다 – 접선 공간 법선맵: 모든 법선 백터를 각 정점의 접선 공간으로 변환하여 보관 • 벡터-> ARGB – R = (DWORD)(127.0*x + 128.),G,B,A – 접선 공간 법선 맵이면 Z=1.0 ,A값을 생략해서 RG(16:16)으로 변환 • 법선맵의 생성 – 높이 맵 • 텍스처를 흑백 이미지로 변환하여 높이 맵을 만들고 이렇게 만들어진 미분 백터들을 RGB값으로 변환하여 텍셀에 저장 한다. – 오브젝트 비교 • 저폴리곤의 텍셀 위치에서 반직선을 쏴서 고폴리곤과 접하는 지점의 법선백터값
  • 10. 애니메이션 • 종류 – 정점 애니메이션 • 각 정점의 위치를 프레임마다 저장하여 보간 – 계층적 애니메이션 • 메시별 매트릭스를 프레임마다 저장하여 사용 – 뼈대 애니메이션 • 계층적 애니메이션을 발전 뼈대를 만들어 메시를 자식으로 붙임 – 스키닝 • 뼈대에 가중치를 사용 관절 부위 문제 해결(팔레트,쉐이더) – 역운동학 • 물리학 역학이론을 사용하여 자연스러운 애니매이션을 표현 • 키 프레임 애니메이션 – 전체 애니메이션 중 중요한 몇 개의 프레임에 애니메이션 키값을 등록 하고 나머지 값은 보간을 통해 자동 생성하는 애니메이션 • 선형 보간(위치보간) – a * (1-t) + b * t ( 0<= t <= 1) • 사원수 보간(회전보간) – 회전의 경우 사원수 보간을 사용하고 위치보간시 계산량을 줄일 수 있 다.
  • 11. 계층 구조 • 트리를 사용하여 관절체로 이루어진 물체를 부모 -자식관계의 계층구조로 구현 • 구현 – Vworld = Vlocal * TMchild * TMparent(n) * TMparent(n-1) … * TMparent(1) • 자식의 직계 부모의 행렬이 먼저 곱해지고 최상위 행렬이 나중에 곱해진다. 부모 메시 자식 메시 부모 최종 행렬 Mparent = Rparent * TMparent 자식 최종 행렬 Mchild = Rchild * TMchild * Mparent = Rchld * TMchld * (Rparent * TMparent)
  • 12. 스키닝 • 스키닝: 메시와 메시를 연결할 때 자연스 럽게 이어붙이는 기술들의 총칭 – 메시와메시가 연결부위가 자연스럽게 붙지 않 는 관절 끊김 현상이 있다. – 메시를 단일한 하나의 메시로 만드는 법(부자 연스러움) – 메시 정점에 가중치를 사용하는 방법 • 본: 본의 가중치 값과 본 애니메이션 행렬을 적용 • 바이패드 • 매트릭스 팔레트: 가중치에 따라 다른 행렬을 곱함