SlideShare uma empresa Scribd logo
1 de 16
1
Custom Tile Texture 구현
Ver 2.0
그래픽디자인실 VFX Team : 유재성
Tile Texture ( Atlas Texture ) ??
• 성능상의 문제로 하나의 파일에 여러 이미지를 모아놓은 텍스처
효율적이긴하나 수정 및 텍스처 공간활용,좌표 추출 등에 애로사항이꽃핀다
1. 구현목표
• Tile X,Y 값
• 애니메이션 되는 시간 조절
• 전체 타일에서 사용되는 특정 범위 지정
• 사용되는 범위의 시작 위치 변경
2
2. 기존의스크립트적극활용(Java Script)
Java Script 에 익숙하지않아서 수월한 C# 으로 변경 작업
3
• 수정된스크립트( C#)
4
5
• 비교
JavaScript 에서 float 값의 상수 형은 수만 써주면 되지만
C# 에선 상수 뒤에 “f”를 꼭 붙여줘야 한다
JavaScript 에선 int 로 받는 값이 float 형 이어도 문제가 없지만
C# 에선 오류가 발생한다
Float 형 앞에 (int) 선언을 해줘서 변수로 넘겨줘야 한다
• 완성된스크립트
3. 구현목표 확인
• Tile X,Y값
• 애니메이션 되는시간 조절
• 전체 타일에서 사용되는특정 범위 지정
• 사용되는 범위의시작 위치 변경
6
4. 나머지 목표 구현…
처음부터 제작한 스크립트가 아니라 모르는 변수들이 너무 많다
분석을 해야…
7
입
력
변
수
5. 모르는 값들은 변수를 선언해서 확인한다
•확인하고싶은 미지의 값들은 알맞은 타입의 변수를선언한 후 실행하여 스크립트 를 분석한다
• 플레이 후 바뀐 변수 값
8
확
인
변
수
9
6. 스크립트 분석
Unity UV 좌표계 DirectX UV 좌표계
10
4
4
U / X
V / Y
0.75~0.99…0.25~0.49… 0.5~0.759…0.0~0.249… 1? = 0.0
11
index = Time x 변수 (1~) // 초당 값이 카운트 됨 1,2,3… 변수가 2이면 2배의 속도로 카운트가 빨라진다
% : 나누기를 한 나머지
index = index % ( 2 x 4 ) // 위에서 받은 값을 8로 나눈 나머지
0,1,2,3… / 8 = 0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1… // 0~7값 반복
x y x y
size = ( 1 / 2 , 1 / 4 ) = ( 0.5 / 0.25 ) // 전체 1의 단위에 비례한 단일 이미지의 크기
uindex = 0,1,2,3,4,5,6,7,0… % 2 = 0,1,0,1,0,1,0,1.0… // 0과 1만 반복하여 반환
vindix = 0,1,2,3,4,5,6,7,0… / 2 = 0,0,1,1,2,2,3,3,0… // 나머지를 한 값만 반환한다
offset = vector2( 0,1,0,1… x 0.5 , 1-0.25-(0,0,1,1,2,3,3,0… x 0.25) )
vector2(0 , 0.5 , 0 , 0.5… , 0.75 – ( 0 , 0 , 0.25 , 0.25 , 0.5 , 0.5 , 0.75 , 0.75 , 0…) )
0.75 , 0.75 , 0.5 , 0.5 , 0.25 , 0.25 , 0 , 0 , 0.75…
복잡한 순차적 위치 이동을
연산자 2개로 해결!!
12
7. 수정 방향
• 변수 index 값이 반복되는 범위의 크기가 Texture 에서 출력될 이미지의 범위를 지정
( 0~3 , 0~5, 0~7 )
변수 index 시작 값이 범위 안에서 다른 위치의 이미지를 출력하게 해준다
( 0~3 , 2~5 , 4~7 )
그 아래쪽의 구문은 index 값을 받아 UV에 맞게 변조 시켜주는 기능만 한다
중요한 것은 index 값!
index%(uvAnimationTileX*uvAnimationTileY) index%(uvAnimationTileX * 사용범위크기Y) + 시작위치Y
2x2 or 2x3 or 2x4
0~3 or 2~5 or 4~7
8. 완성된 스크립트
13
유효한 범위 지정 시작하는 행 지정(디폴트0)
14
유효한 범위 변경
시작하는 행 지정
9. 적용 예시
• 실행결과
1
2
3
15
10. 결과물
11. 남은 문제들…
구현목표
• Tile X,Y 값
• 애니메이션 되는 시간 조절
• 전체 타일에서 사용되는 특정 범위 지정
• 사용되는 범위의 시작 위치 변경
• 행, 열 구분 없이 적용 가능
• 디테일 한 위치 지정
• Once / Loop 구분 설정
사용하시다가문제점이나개선점등이있으면알려주시면감사하겠습니다!!
16

Mais conteúdo relacionado

Mais procurados

[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법강 민우
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술YEONG-CHEON YOU
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 
15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlasnoerror
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기YEONG-CHEON YOU
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전Sukwoo Lee
 
09_motionblur
09_motionblur09_motionblur
09_motionblurnoerror
 
IndirectDraw with unity
IndirectDraw with unityIndirectDraw with unity
IndirectDraw with unityJung Suk Ko
 
Unity performanceoptimzation
Unity performanceoptimzationUnity performanceoptimzation
Unity performanceoptimzationegohim
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011devCAT Studio, NEXON
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIYEONG-CHEON YOU
 

Mais procurados (16)

[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
[IGC2018] 유영천 개발자 - Voxel기반 네트워크 게임 최적화기법
 
빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술빠른 렌더링을 위한 오브젝트 제외 기술
빠른 렌더링을 위한 오브젝트 제외 기술
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
15_TextureAtlas
15_TextureAtlas15_TextureAtlas
15_TextureAtlas
 
Voxelizaition with GPU
Voxelizaition with GPUVoxelizaition with GPU
Voxelizaition with GPU
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기
 
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
 
09_motionblur
09_motionblur09_motionblur
09_motionblur
 
IndirectDraw with unity
IndirectDraw with unityIndirectDraw with unity
IndirectDraw with unity
 
Unity performanceoptimzation
Unity performanceoptimzationUnity performanceoptimzation
Unity performanceoptimzation
 
gv004 ver0.1
gv004 ver0.1gv004 ver0.1
gv004 ver0.1
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011전형규, Vertex Post-Processing Framework, NDC2011
전형규, Vertex Post-Processing Framework, NDC2011
 
Sw occlusion culling
Sw occlusion cullingSw occlusion culling
Sw occlusion culling
 
Development AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic APIDevelopment AR App with C++ and Windows Holographic API
Development AR App with C++ and Windows Holographic API
 
Motion blur
Motion blurMotion blur
Motion blur
 

Semelhante a gv008 ver0.1

3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택JinTaek Seo
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템noerror
 
Html5 canvas study week1n2
Html5 canvas study week1n2Html5 canvas study week1n2
Html5 canvas study week1n2Juneyoung Oh
 
[Naver d2]html5 canvas overview
[Naver d2]html5 canvas overview[Naver d2]html5 canvas overview
[Naver d2]html5 canvas overviewNAVER D2
 
안드로이드스터디 11
안드로이드스터디 11안드로이드스터디 11
안드로이드스터디 11jangpd007
 
c++ opencv tutorial
c++ opencv tutorialc++ opencv tutorial
c++ opencv tutorialTaeKang Woo
 
VLFeat SIFT MATLAB application 테크니컬 리포트
VLFeat SIFT MATLAB application 테크니컬 리포트VLFeat SIFT MATLAB application 테크니컬 리포트
VLFeat SIFT MATLAB application 테크니컬 리포트Hyunwoong_Jang
 
Html5 소개 가이드
Html5 소개 가이드Html5 소개 가이드
Html5 소개 가이드Jong-hyun Park
 
이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdftangtang1026
 

Semelhante a gv008 ver0.1 (10)

3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택
 
CSS Functions
CSS FunctionsCSS Functions
CSS Functions
 
11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템11_빠른 개발 가능한 레벨 편집 시스템
11_빠른 개발 가능한 레벨 편집 시스템
 
Html5 canvas study week1n2
Html5 canvas study week1n2Html5 canvas study week1n2
Html5 canvas study week1n2
 
[Naver d2]html5 canvas overview
[Naver d2]html5 canvas overview[Naver d2]html5 canvas overview
[Naver d2]html5 canvas overview
 
안드로이드스터디 11
안드로이드스터디 11안드로이드스터디 11
안드로이드스터디 11
 
c++ opencv tutorial
c++ opencv tutorialc++ opencv tutorial
c++ opencv tutorial
 
VLFeat SIFT MATLAB application 테크니컬 리포트
VLFeat SIFT MATLAB application 테크니컬 리포트VLFeat SIFT MATLAB application 테크니컬 리포트
VLFeat SIFT MATLAB application 테크니컬 리포트
 
Html5 소개 가이드
Html5 소개 가이드Html5 소개 가이드
Html5 소개 가이드
 
이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf
 

Mais de Glenn Chae

Mais de Glenn Chae (6)

gv007 ver0.1
gv007 ver0.1gv007 ver0.1
gv007 ver0.1
 
gv006 ver0.1
gv006 ver0.1gv006 ver0.1
gv006 ver0.1
 
gv005_2 ver0.1
gv005_2 ver0.1gv005_2 ver0.1
gv005_2 ver0.1
 
gv005_1 ver0.1
gv005_1 ver0.1gv005_1 ver0.1
gv005_1 ver0.1
 
gv003 ver0.1
gv003 ver0.1gv003 ver0.1
gv003 ver0.1
 
gv001ver01
gv001ver01gv001ver01
gv001ver01
 

gv008 ver0.1

  • 1. 1 Custom Tile Texture 구현 Ver 2.0 그래픽디자인실 VFX Team : 유재성
  • 2. Tile Texture ( Atlas Texture ) ?? • 성능상의 문제로 하나의 파일에 여러 이미지를 모아놓은 텍스처 효율적이긴하나 수정 및 텍스처 공간활용,좌표 추출 등에 애로사항이꽃핀다 1. 구현목표 • Tile X,Y 값 • 애니메이션 되는 시간 조절 • 전체 타일에서 사용되는 특정 범위 지정 • 사용되는 범위의 시작 위치 변경 2
  • 3. 2. 기존의스크립트적극활용(Java Script) Java Script 에 익숙하지않아서 수월한 C# 으로 변경 작업 3
  • 5. 5 • 비교 JavaScript 에서 float 값의 상수 형은 수만 써주면 되지만 C# 에선 상수 뒤에 “f”를 꼭 붙여줘야 한다 JavaScript 에선 int 로 받는 값이 float 형 이어도 문제가 없지만 C# 에선 오류가 발생한다 Float 형 앞에 (int) 선언을 해줘서 변수로 넘겨줘야 한다
  • 6. • 완성된스크립트 3. 구현목표 확인 • Tile X,Y값 • 애니메이션 되는시간 조절 • 전체 타일에서 사용되는특정 범위 지정 • 사용되는 범위의시작 위치 변경 6
  • 7. 4. 나머지 목표 구현… 처음부터 제작한 스크립트가 아니라 모르는 변수들이 너무 많다 분석을 해야… 7
  • 8. 입 력 변 수 5. 모르는 값들은 변수를 선언해서 확인한다 •확인하고싶은 미지의 값들은 알맞은 타입의 변수를선언한 후 실행하여 스크립트 를 분석한다 • 플레이 후 바뀐 변수 값 8 확 인 변 수
  • 9. 9 6. 스크립트 분석 Unity UV 좌표계 DirectX UV 좌표계
  • 10. 10 4 4 U / X V / Y 0.75~0.99…0.25~0.49… 0.5~0.759…0.0~0.249… 1? = 0.0
  • 11. 11 index = Time x 변수 (1~) // 초당 값이 카운트 됨 1,2,3… 변수가 2이면 2배의 속도로 카운트가 빨라진다 % : 나누기를 한 나머지 index = index % ( 2 x 4 ) // 위에서 받은 값을 8로 나눈 나머지 0,1,2,3… / 8 = 0,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1… // 0~7값 반복 x y x y size = ( 1 / 2 , 1 / 4 ) = ( 0.5 / 0.25 ) // 전체 1의 단위에 비례한 단일 이미지의 크기 uindex = 0,1,2,3,4,5,6,7,0… % 2 = 0,1,0,1,0,1,0,1.0… // 0과 1만 반복하여 반환 vindix = 0,1,2,3,4,5,6,7,0… / 2 = 0,0,1,1,2,2,3,3,0… // 나머지를 한 값만 반환한다 offset = vector2( 0,1,0,1… x 0.5 , 1-0.25-(0,0,1,1,2,3,3,0… x 0.25) ) vector2(0 , 0.5 , 0 , 0.5… , 0.75 – ( 0 , 0 , 0.25 , 0.25 , 0.5 , 0.5 , 0.75 , 0.75 , 0…) ) 0.75 , 0.75 , 0.5 , 0.5 , 0.25 , 0.25 , 0 , 0 , 0.75… 복잡한 순차적 위치 이동을 연산자 2개로 해결!!
  • 12. 12 7. 수정 방향 • 변수 index 값이 반복되는 범위의 크기가 Texture 에서 출력될 이미지의 범위를 지정 ( 0~3 , 0~5, 0~7 ) 변수 index 시작 값이 범위 안에서 다른 위치의 이미지를 출력하게 해준다 ( 0~3 , 2~5 , 4~7 ) 그 아래쪽의 구문은 index 값을 받아 UV에 맞게 변조 시켜주는 기능만 한다 중요한 것은 index 값! index%(uvAnimationTileX*uvAnimationTileY) index%(uvAnimationTileX * 사용범위크기Y) + 시작위치Y 2x2 or 2x3 or 2x4 0~3 or 2~5 or 4~7
  • 13. 8. 완성된 스크립트 13 유효한 범위 지정 시작하는 행 지정(디폴트0)
  • 14. 14 유효한 범위 변경 시작하는 행 지정 9. 적용 예시 • 실행결과 1 2 3
  • 16. 11. 남은 문제들… 구현목표 • Tile X,Y 값 • 애니메이션 되는 시간 조절 • 전체 타일에서 사용되는 특정 범위 지정 • 사용되는 범위의 시작 위치 변경 • 행, 열 구분 없이 적용 가능 • 디테일 한 위치 지정 • Once / Loop 구분 설정 사용하시다가문제점이나개선점등이있으면알려주시면감사하겠습니다!! 16