블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2324)
Unity3D (568)
Programming (472)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (34)
3DS Max (3)
Game (12)
Utility (116)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (38)
Android (13)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (9)
Total1,344,953
Today57
Yesterday321
Statistics Graph

달력

« » 2019.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

공지사항

태그목록

2.0과 3.0의 차이점.

1. 유연한 입출력 선언.

세이더 프로그램에 대한 입력의 수가 지원되는 입력 레지스터의 수를 초과하더라도,
여러 입력들을 한 레지스터에 함께 넣을 수 있다.

2. 조건자의 제공.
동적인 쓰기 마스킹이 가능한 4개의 불린 플래그들의 묶음으로 이루어진 레지스터.
이 레지스터를 이용하여 보통 4개의 채널별로 일어나는 세이더 연산이 적용될 것인지 아닌지를 정한다.

3. 정적, 동적 조건 분기
정적 조건 제어는 분기별 서로 다른 코드들을 한 세이더 안에 넣을 수 있게 하여 세이더 상태가
변하는 횟수를 줄일 수 있게 해 주며 정적루프는 고정된 회수의 루프를 사용할 경우에 유용하다.
2.0과 3.0의 차이점은 2.0에서는 정적 조건분기가 중첩문을 사용할 수 없다는 것이다.
3.0은 4단계의 중첩이 되는 정적조건 분기를 지원하며 동적 조건분기를 지원한다.
동적조건 분기는 세이더 프로그램 내의 결과값에 의해 수정된 레지스터 값을 비교하여 다른 코드를 수행하는 것이다.

4. 임의의 스위즐
2.0은 vs만 지원하고 ps에서는 지원하지 않지만 3.0은 둘 다 지원한다.

5. 텍스쳐 명령어 상의 쓰기 금지 마스크
3.0 에서는 이 기능을 이용하여 선택된 색상채널만 destination 레지스터에 텍스쳐 샘플링 결과로 업데이트할 수 있다. 
이것을 이용하여 텍스쳐 명령어를 수행하는 도중에 쓰기 금지된 성분을 보호 할 수 있다.

vs3.0의 기능

1. 레지스터
vs2.0에서는 12개의 레지스터가 있지만 vs3.0에서는 32개의 레지스터가 있다.

2. 명령어
vs2.0은 256개의 명령어를 지원하지만 vs3.0은 512개의 명령어를 지원한다.

3. 텍스쳐 샘플링
2.0에도 정점 세이더 유닛에 기본적인 텍스쳐 샘플러 기능이 있지만 기능이 제한적.
3.0에서는 정점 텍스쳐링을 완벽히 지원하기 떄문에 정점 세이더에서도 픽셀 세이더와 같은 수준의
기능과 유연함을 가지고 텍스쳐를 참조할 수 있다.

4. 정점 스트림 빈도
같은 입력데이터를 한번 이상 사용할 수 있도록 정점 데이터를 서로 다른 비율로 가져올 수 있다.

ps3.0의 기능

1. 레지스터
32개의 임시레지스터와 256개의 상수레지스터를 지원한다.

2. 명령어
ps2.0에서 96개의 명령어를 지원하는 것에 반해 ps3.0에서는 512개의 명령어를 지원한다.

3. 무제한의 텍스쳐 샘플과 의존적 읽기
ps3.0에서는 모든 텍스쳐 읽기 제한이 완벽하게 없어졌다.




출처 : http://blog.naver.com/jungbostyle/130116978009

'Programming > Shader' 카테고리의 다른 글

[링크] 붕괴3 방식의 카툰렌더링 구현하기  (0) 2019.05.20
HLSL 내장함수  (0) 2012.06.25
쉐이더(Shader) 2.0 3.0 차이  (0) 2012.06.25
Posted by blueasa

댓글을 달아 주세요