quickmenu
PC 뉴스 홈  

nVIDIA, SM2.0과 3.0의 성능차이 데모 공개

2004-06-23 11:52
이우용 수석기자 guygun님의 미디어로그 가기 guygun@bodnara.co.kr

nVIDIA는 그동안 NV4x가 지원하는 Shader Model 3.0을 통해 기존 Shader Model 2.0보다 빠른 Shader 프로그래밍이 가능하여 같은 결과물을 가져와도 더 빠르게 처리할수 있다는 점을 강조하였는데 이 부분을 테스트한 데모 및 테스트 결과를 공개하였다고 한다.

 

이 소식은 Mydrivers를 통해 알려진것으로 nVIDIA는 Shader Model 3.0이 dynamic branch, circulation등의 새로운 Shader연산을 지원하기에 기존 Shader Model 2.0으로 짜여진 Shader 연산 프로그래밍보다 더 간단하게 프로그램을 짤수가 있다고 강조하였으며 nVIDIA의 teapot 데모를 Shader Model 2.0으로 코딩한것과 Shader Model 3.0으로 코딩한것의 성능차이를 보여주었다고 한다.

 

 

 

물로  teapot 데모를 통해 나타난 결과물은 둘다 같은 결과물이었는데 Shader Model 3.0에서는 60.1 프레임정도를 나타내었으며 Shader Model 2.0으로 짜여진 결과물에서는 20.1 프레임정도를 나타내었다고 한다.

 

이 기사의 의견 보기
로꼬다 / 04-06-23 14:01/ 신고
정확하게 짚고 넘어가야 할 점이 있다고 봅니다...
내용만 보면 3.0이 세배나 빠르다는 것으로 이해할수도 있을듯 한데요...

화면을 보면 60프레임은 NV4X 20프레임은 NV3X 입니다...
단순히 쉐이더 2.0, 3.0 차이가 아니라는 얘기죠...
1 / 04-06-23 14:05/ 신고
nv3x 모드니까 당연히 ps2.0이란 소리아닌가...
돌린 카드가 fx란 소리가 아니고..
에스지엠엔 / 04-06-23 14:54/ 신고
라데온에서 저걸 돌리면 화질은 비슷한 수준에

100프레임 정도가 오온다는 예기군..

쉐도 2.0으로 돌아가지만 말야~

지얼굴에 침벳기 ㅡ_ㅡ;
ㅇㅇㅇ / 04-06-23 15:02/ 신고
같은 결과물... 그렇다면 3dc 에 무게가 실릴듯
하얀나라 (ID) / 04-06-23 15:16/ 신고
아직 정보가 자세하게 공개되지 않고 있어 테스트에 사용한 시스템이 어떤것인지는 알려지지 않고 있습니다.. 위에서 Mode에 나온 Nv3x와 Nv4x가 NV3x 그래픽카드와 NV4x 그래픽카드를 사용했다는 것인지 아니면 Shader Model 적용의 차이를 말하는것인지는 자세히 언급되지는 않았네요..
ㅇㅇㅇ / 04-06-23 15:45/ 신고
뭐.. 전에도 이런 식이었죠
파크라이 비교 샷에서도 2.0과 3.0이라고 하고선 나중에 알고보니 1.x 였다는... 그것도 확인하기 어려운 캠버전 화질로....
ㅋㅋㅋ / 04-06-23 16:06/ 신고
뭡니까? 아직 정확히도 않은 자료를 올려서 유저들에게 혼란만 주고
ㅇㅇㅇ / 04-06-23 16:13/ 신고
엔비댜가 공개한 거잖소.
ㅇㅇㅇ 바보 / 04-06-23 16:31/ 신고
3dc 가 언제 필요한지도 모르면서 ㅋㅋㅋ
jitter 라고 쓴건 몬지 아실런지..
3D관련 기초상식이나 보시고 쓰시면 좋겠네요
마징가Z / 04-06-23 16:45/ 신고
' 0')/ jitter가 무엇입니까?
알려주세요...
. / 04-06-23 16:45/ 신고
3dc 는 고화질 텍스처 압축 기법입니다. 주로 normal map을 압축하기위해서 만들었지요. 각각 삼각형들은 normal vector를가지는데 텍스처맵에 들어가는 pixel들도 normal을 가지게 하는것입니다. 밝기계산 등등에 쓰입니다. 걍 방향벡터라고 보심 됩니다. 이를 쓸려면 displament mapping같은데서 쓸텐데 이를쓸라면 복합적인 부하가 큰 shader code를 피치못하게 사용하게 됩니다. shader code 가 2.0 서는 어느정도 비효율적이 되는이유가. vertex->pixel 연결시 저장레지스터들이 값이 정해져 있습니다. 이걸 유저 임의로 정하게 하는 기능추가부분 및 분기가 true, false 로만 이루어져서 코드가 좀 지저분해지던게 사라져서 연산에 가속화가 있겠습니다. 3.0의 가속요인으로선.. 3Dc가 결과적으로 주는 이득은 같은 VRAM으로 더욱많은 normal map을 올리겠단것입니다. 즉 agp bottle neck 을 줄여보겠단 소리인데 이게 효과를 나타내기 위해선 역시 normal map사용량이 많아야 겠지요. 실제 일반 텍스처는 기존압축방법으로도 화질이 나와줍니다. 물론 3dc압축하면 더 올라가겠지만 그거보단 mip mapping 쪽에서 보정하는것이 더 효과적일 것입니다. 3dc로 노말맵까지 압축해서 올렸다 할때 VRAM절약효과가 두드러지기위해선 상당히 많은양의 질감들이 normal map 을 써야합니다. 머 있으면 좋은기능 없으면 버스가 좀더 힘들어지는 기능 그렇게 보면됩니다. 실제 노말맵이 아직 전반적으로 많이 쓰이긴 힘든 상황이니깐 3dc는 +a 정도의 느낌으로 보시면 될듯합니다. jitter를 했으니 AA시 픽셀을 더 흔들어주느라고 더 힘들었을텐데도 그정도 프렘이 나왔다는건 확실히 속도향상은 있는듯 합니다만 위 그림만 보곤 알기 힘듭니다. 두 그림의 H/W spec및 shader code list가 필요할테지요 ㅇㅇㅇ 같은분들이 이런 사이트에 덧글을 많이 달으면서 느껴지는건데 이런사이트에 상당히 불량한 글들이 늘어가지요 불확실한 사실 몽상에 의한글 근거없는글.. 좀 보기 나쁘긴 하네요. 기반지식이 없이 어디서 잠시 보고온글 올리면 결국 바보되는건 자신일텐데..
. / 04-06-23 16:49/ 신고
jitter는 떨림 흔들림을 의미합니다. 그래픽쪽 에서는 이 기능에 헤택을 보는건 주로 AA가 있을수 있겠습니다.
멀티샘플링후 픽셀위치에 계속 노이즈를 주면 격자모양이 좀더 부드럽게 흔들리겠죠. 아니면 그냥 AA안한 상태라도 픽셀찍을때 조금씩 흔들어주면 빗살무늬 등등 격자무늬가 재수없게 확대축소시 걸려서 줄이하나 사라지거나 그런현상이 많이 완화되게 됩니다. 머 픽셀을 조금씩 흔든다고 보심 되겠습니다. 확은 아니지만 어느정도 화질상승 효과가 있습니다
ㅇㅇㅇ / 04-06-23 16:52/ 신고
아이구 여기 전문가가 계셨군요
님의 풍부한 지식으로 지금 샷에 나와있는 mode, jitter, fwith 에 대해 자세히 설명해 보세요.
homm3 / 04-06-23 16:56/ 신고
ㅇㅇㅇ // x도 모르면 조용하는게 예의같던데?
ㅇㅇㅇ / 04-06-23 17:00/ 신고
homm3 당신은 상관할 바가 아닐텐데?
모르니 알려고 하는게 아니오
. / 04-06-23 17:00/ 신고
mode 는 장치 ID로서 읽어냅니다. D3D나 open gl 초기화시 device id를 얻어낼수 있지요 dx9.0sdk 예제들보시면 내 글픽카드 이름들까지 알아주죠? 그거서부터 지원정보등등 다 나옵니다. 벤더명, 각각 처리가능한 셰이더정보, 처리가능한 능력한계.. 그들중 하나를 적어논거라 보심 되겠구요 fwidth는 딱히 어떤 정보라기 보다는 현재 데모서 쓰인 일종의 변수 라고 보심 되겠습니다. 아참 그리고 전 이쪽관련 프로그램 만드는 사람입니다. ㅇㅇㅇ 님처럼 모르고 쓰는 사람들 많지만 ㅇㅇㅇ님의 경우 정말 모르는듯한 분이 정말 잘아는 것처럼 써서 웬만하면 가만히 있는데 한번 써봤습니다. 머 개발자들만 아는거 몰라도 되지만 다른분들도 보시는 게시판에 이렇게 써놓는게 심히 안좋아 보여서 써 봤네요
걍 / 04-06-23 17:01/ 신고
.님 normal map을 압축시 일반압축보다 3dc가 더 압축율이 좋은 이유는 뭔가요? normal map데이터와 일반 텍스쳐데이타가 패턴에 큰차이없을것같은데여
. / 04-06-23 17:04/ 신고
3dc의 개선된 압축 알고리즘이 무엇인진 모르지만 normal map 을 좀더 손실이 적은 압축알고리즘을 써야하는 이유는 간단합니다. 대부분의 이미지는 2D 사진과 비슷합니다만 normal map은 높낮이가 낮은 등고선 비슷하게 됩니다. 이유는 각각의 물체의 윤곽 즉 입사면과 반사면 사이의 각도가 해당될텐데 전체적으로 값의 오차한계가 작습니다. 그래서 조금만 오차가 생겨도 값이 더 큰 영향을 받게 됩니다. 그래서 이전엔 normal map을 일반 텍스처 압축 알고리즘을 적용하면 글픽손상이 심해서 적용하기 힘들었습니다만.. 3dc정도되면 손실율이 많이 낮아져서 써볼만할지도 모른다는겁니다(저 돈읍어서 x800읍습니다.. 써본적은 읍어요 ㅜ.ㅠ) x800데모에 적용했다고 이야기들 나왔던데 그정도면 꽤 적용할만 하긴 한가봅니다
마징가Z / 04-06-23 17:10/ 신고
' 0')/ 호오~ 답변 감사합니다.
걍 / 04-06-23 17:21/ 신고
.님 이쪽관련 프로그램을 만든다고하셨는데 구체적으로 어떤 일을 하시나요?
제가 3d에 관심이 많은데 님정도 아는 사람이면 큰 게임회사 개발자정도는 되야되는지 .. 궁금하네여.
. / 04-06-23 17:23/ 신고
큰 회사는 아니고 그냥 그럭저럭 회사 다니고 있습니다. 3D는 cad, simulator 쪽 보다는 일반 리얼타임 3D display쪽입니다 솔직히 solid modeling도 아직 잘모릅니다. 그쪽은 개념만알구요 렌더링쪽도 아직 많이 모릅니다. 고전적인 wireframe base 모델로부터 출발한 3D display engine쪽입니다.
ㅇㅇㅇ / 04-06-23 17:28/ 신고
"mode 는 장치 ID로서 읽어냅니다"
그렇다면 지금 저 샷은 분명 FX와 6800 의 두가지를 테스트 한게 맞다는 것인가요?

그리고 님이 쓴글 중 "3dc 가 언제 필요한건지도 모르면서" 이건 무슨 뜻인지요?
11 / 04-06-23 17:33/ 신고
shader 3.0과 3dc는용법이 전혀 다르단 것입니다. 그렇기 때문에 ㅇㅇㅇ 님이 적으신 "같은결과물 그러면 3dc에 더 무게가 실릴듯" 이란글의 내용을 일종의 확대 해석해서 적어드렸다고 보심되겠구요. 즉 비교불가능한 대상을 비교하신 이유는 머 뻔하겠죠. mode는 장치 ID를 읽어도 바로 나오는건 허용 가능한 즉 H/W가 처리가능한 정보의 버젼만 나옵니다. 2.0 된다 안된다 등등.. 그리고 나오는게 6800같은 제품이름도 나오구요 그러므로 저도 H/W를 잘 모르겠다고 글에적어놓은 이유는 NV40도 NV3X모드가 먹으므로 알길이 없다는 것입니다.
. / 04-06-23 17:35/ 신고
3dc는 아시다시피 일개 데모에선 효과가 없죠. 대용량 데이터 글픽메모리 팍팍 써야만 속도 효과가 나죠. 저런 기술시연 데모정도론 별 의미가 없죠. 물론 개별데모로 적용시켜놓고 화질손실읍다 라고 증명하면 또 의미가 있겠습니다.
. / 04-06-23 17:38/ 신고
코어정보 읽는 법은 저도 모릅니다만.. 모드설정 정도야 얼마든지 선택가능하며(지원유무 탐색까지) 에또... 지원 가능한것 중에서 하위적인걸 골라버림 대책없다고 보심 될듯 합니다.
ㅇㅇㅇ / 04-06-23 17:41/ 신고
그런 건가요...
저는 화질차이가 없는 3.0 보다는 x800 의 3dc가 화질 향상에 더 낫지 않나해서 적은거 였습니다. 둘다 이번 각사의 신제품만이 갖고 있는 신기술이여서죠
ㅇㅇㅇ / 04-06-23 17:44/ 신고
3dc 지원하는 게임은 x800 발표때 나온 하프라이프2와 시리어스 샘2가 있더군요(발매 미정)
그러나 데모 화면을 보면 핏줄이나 주름살 같은 것이 더욱 세밀하게 표현이 되어 있는것을 볼 수 있었습니다.
.. / 04-06-23 17:47/ 신고
예 머 회사상에서는 각각 새로운 기술이다 라고 트레이드 마크처럼 광고를 하겠지요. 그래서 광고간판에 세울텐데.. 사연을 알아보면 둘다 용도나 비중이 다릅니다. 마케팅이란 참 재밌죠. 둘다 화질향상에 일조하는 방식이 다르다고 보시면 되겠습니다.
. / 04-06-23 17:49/ 신고
예 보신대로 주름살 같은거 좀더 자세하게 표현하면서 동시에 VRAM의 부하를 줄여줄수 있습니다. 즉 노말맵을 더 많이 쓸수 있다는거지요 그리고 파크라이서 쓴 HDR은 실제 아주 무거운 연산입니다. 만약 파크라이가 그걸 적용하고도 프렘이 그럭저럭 나와준다면 shader 의 3.0 버젼사용이 연산속도 증가폭이 크단 이야기가 되겠지요. 머 나와봐야 알듯합니다. 이놈의 거 은제나오나..
미아리 / 04-06-23 17:50/ 신고
://www.parkoz.com/zboard/view.php?id=int_vganews&page=1&sn1=&divpage=1&sn=off&ss=on&sc=off&select_arrange=headnum&desc=asc&no=49&category=1 <-
ㅇㅇㅇ / 04-06-23 18:03/ 신고
뭐...
nv3x mode를 이용한 것은 유감이군요.
저 두가지의 샷을 보고 예상하지만 r420으로 테스트 한다면 두번째 샷 정도의 프레임이 나오지 않을까 생각합니다.
. / 04-06-23 18:07/ 신고
아 그게 쩝.. r420으로 NV40모드를 전혀 할수가 없습니다. 이유인즉슨 r420은 vs3.0 ps2.0인데 ps랑 vs랑 둘다 3.0 이 되야 vs->ps 로 이어지는 데이터 플로우 에서 dcl 하는부분 즉 데이터 타입 정의하는 부분이 자유롭게 되는데 r420이 ps2.0b이므로 그부분이 안먹습니다만.. 머 프레임은 꽤 나와주겠지요
아니죠 / 04-06-23 18:46/ 신고
nv30모드를 r420으로 돌리면 nv40 프레임이 나오는 말씀이시죠..OOO님은...
ㅇㅇㅇ / 04-06-23 20:53/ 신고
homm3 파코즈에서 안되니까 여기서 설치는군
바람이야기 / 04-06-23 22:15/ 신고
제 생각이지만 두 스크린 샷 모두 nv40이 아닐까 합니다.

단순히 ps2.0과 ps3.0의 프레임차이를 비교한다며 보여준 것이라면 같은 그래픽카드를 이용하는 것이 상식이지 않을까요?

단순히 마케팅적인 차원에서 하나는 nv3x카드를 하나는 nv4x카드를 사용했다면 이것 역시 치팅이라고 봐야하겠지요.

하지만 전 개인적으로 6800gt를 구입할 생각이고, 그렇기에 제 추측이 사실이었으면 하는 바람입니다.
- - / 04-06-23 22:27/ 신고
대충사셔 쓰시오! 뭐 그리 소모적인 논쟁을..
준 / 04-06-23 23:19/ 신고
사진과 상관없이 게임프로그래머로써의 관점만 사실에 입각하여 말씀드리죠.

논란의 핵심은 "셰이더 코드 3.0을 사용하면 셰이더 코드 2.0보다 더 효율이 좋다"라는 얘기입니다.
답부터 말씀드리면, GPU가 버전업되면 더 짧은 코드로 동일한 일을 할수 있습니다.
코드가 짧을수록 더 빨리 실행되는 것은 당연합니다.
물론 명령에 따라서는 클럭수를 더 먹어치우는 것들도 있겠지만, 일반적으로 그렇다는 것입니다.
즉, 이 얘기는 어느정도 맞는 말입니다.

그러나, 여기서 간과하고 있는 것이 있습니다.
일반적으로 "하위버전 셰이더 명령들은 상위버전 GPU에서 더 빠르게 실행된다"라는 사실입니다.
즉, FX6800에서는 셰이더 2.0으로 만들어진 프로그램이 셰이더 3.0으로 만들어진 것보다 더 빠르게 실행될수도 있다는 겁니다.

정확한 것은 물건을 가지고 테스트를 해봐야 알겠지만, 이런것들은 결국 소모적인 논쟁에 불과합니다.

오히려, FX6800에서 지원하는 셰이더 3.0의 진정한 가치는 단순히 프레임수 몇프레임 차이에 있는 것이 아니라, 그 미래적 가치에 있는 것입니다.
셰이더 3.0에서는 정적분기와함께 동적분기가 완벽하게 지원되며, 무엇보다 정점셰이더 수준에서 텍스처에 대한 접근을 허용합니다.
프로그래머 입장에서는 정점셰이더에서 텍스처에 접근할수 있다는 것만으로도 엄청난 선물을 받은 것입니다.

이것은 '하프라이프2' 같은 게임에서 사용한 물리엔진들이 CPU수준에서 작동했던데 반해서, 앞으로는 이것조차도 GPU수준에서 제어 가능하다는 것입니다.
물론, GPU에 대한 좀더 범용적인 프로그래밍이 가능하려면 아직도 멀었지만 말입니다.

각자의 입장차이는 최종소비자의 성향에 따라서 달라질수있다고 봅니다.
그러나, 저같은 개발자의 입장에서라면 셰이더 3.0을 지원하는 FX6800은 매우 매력적인 카드임에 분명합니다.
agjhj / 04-06-24 0:31/ 신고
준님글의 딴지는 아니고 fx6800이 아니고 걍 6800입니다.
agjhj / 04-06-24 0:40/ 신고
순전히 쥐뿔도 모르는 저의 소견으론 ATI 말마따나 쉐이더 2.0으로도 3.0같은 화면을 보여줄수있다.
단 쉐이더3.0에 비해서 속도가 많이 떨어지므로 파이크라이 1.2패치 캍은 퀄리티의 그래픽을 구사하려면 속도에서 많은 하락이 있다.고로 NVIDIA말마따나 6800씨리즈는 쉐이더 3.0의 지원이 되므로 고품질의 그래픽을 많은 성능 하락 없이 구현할수 있다.
이말이 아닐지요.
따지고 보면 ATI나 NVIDIA나 둘다 맞는말..
파크라이 패치가 나와야 확실이 알수 있을텐데 ㅎㅎ
agjhj / 04-06-24 1:01/ 신고
위에 오타 파크라이 1.3패치
바람이야기 / 04-06-24 8:11/ 신고
'ps2.0으로 만든 프로그램이 ps3.0으로 만든 프로그램보다 더 빠를 수가 있다'는 준님의 말씀은 도저히 납득할 수가 없군요. 물론 하위 버전의 ps는 상위 버전의 gpu에서 빠른게 처리할 수 있다는데는 동의합니다만.

그리고 'gpu가 버전업되면 더 짧은 코드로 같은 일을 할 수 있다'고 하셨는데, gpu는 다이렉트x나 open gl같은 api를 준수합니다. 즉 코드를 작성하는 쪽은 사람이고 gpu는 단순히 코드를 메모리로부터 읽어 처리하는 단순한 일을 한다는 것이지요. cpu도 마찬가지입니다만.
혹 'gpu의 기계어적 명령어를 달리해 api함수들이 기계어로 번역될 때 더 나은 효율을 나타낼 수 있다'라고 하신 거라면 전 회의적입니다. 명령어를 추가하는 것은 많이 봐왔지만 명령어를 대체한다는 것은 하위 호환성에 문제가 있기에 꺼리는 걸로 압니다만.

어쨌든 api들이 더 효율적인 함수들을 포함한다면 몰라도 단순히 gpu의 버전업만으로 코드 수를 줄일 수는 없는 것입니다. 코드는 이미 만들어져 버렸으니까요. 소프트웨어 표준을 따른 다는 것이 그런 이유에서이죠.

해외의 프로그래머들은 ps2.0과 ps3.0의 차이는 화질이 아니라 프로그래밍 명령어의 확장으로 인해 ps2.0에 비해 코드 수가 훨씬 짧으면서도 같은 일을 할 수 있어 효율이 증가되고, 따라서 속도에서 이득을 볼 수 있을 거라고 했습니다. 저 위의 두 스샷도 그런 관점에서 발표된 것이구요.
준 / 04-06-24 10:43/ 신고
'gpu가 버전업되면 더 짧은 코드로 같은 일을 할 수 있다'라는 말은 기존의 코드가 더 짧은 코드로 재작성될수 있다는 말입니다.
NVIDIA의 이번 테스트도 그런관점에서 이해되어야 하는 사항이 맞습니다.

제가 말한게 그렇게 보이지 않았나요?

해외의 프로그래머는 그렇게 보는데, 국내 개발자인 니가 건방지게 왜 딴소리냐? 하는 어투로 보여서 대단히 기분이 나쁘군요.

바람이야기 / 04-06-24 10:53/ 신고
'해외의 프로그래머는 그렇게 보는데, 국내 개발자인 니가 건방지게 왜 딴소리냐? 하는 어투로 보여서 대단히 기분이 나쁘군요.'

이 부분에 대해서 오해가 있으셨던 것 같습니다. 저도 컴퓨터과학을 전공하고 있고 한국인인데 어찌 국내 개발자를 무시할 수가 있겠습니까? 제가 해외 개발자 운운한 것은 새로운 gpu로 인해서가 아닌 새로운 소프트웨어 표준에 의해 코드가 더 효율적으로 된다는 제 의견에 대한 근거로서 제시된 것입니다. ps2와 ps3이 그 예이죠.

그리고
---------------------------------------------------
'gpu가 버전업되면 더 짧은 코드로 같은 일을 할 수 있다'라는 말은 기존의 코드가 더 짧은 코드로 재작성될수 있다는 말입니다.
NVIDIA의 이번 테스트도 그런관점에서 이해되어야 하는 사항이 맞습니다.

제가 말한게 그렇게 보이지 않았나요?
---------------------------------------------------

이 부분은 그렇게 들리지 않았으니 제가 그렇게 댓글 달았겠지요. 제 글 이해력이 부족할 수도 있겠지요. 그 반대로 님의 글 표현력이 부족할 수도 있는 것이구요.

준님이 말씀하신 'gpu의 버전 업'은 그 범위가 너무 넓어 글의 내용자체를 애매모호하게 만듭니다. 프로그래밍을 하신다니 언어의 사용이 얼마나 중요한지 아시리라 믿습니다.
바람이야기 / 04-06-24 11:01/ 신고
따지려드니 끝이 없군요.

'gpu가 버전업되면 더 짧은 코드로 같은 일을 할 수 있다'

이 말씀은 제가 보기엔 근시안적인 것 같아 보입니다. gpu의 버전업이라기 보다는 api의 버전업이라 보시는 것이 맞는 것이 아닌가요?

그 예로 ati의 x800시리즈는 분명 버전업이 맞습니다만, ps2 코딩시 더 짧은 코드가 작성될 수 있을까요?

아무리 gpu가 버전업을 한다고 해도 결국은 api에 종속적일 수 밖에 없지 않습니까? 물론 그 회사 나름대로 api만들어 개발자들에게 유포할 수도 있지만 개발사들 입장에선 상업적 매리트가 떨어지는 것은 사실일테구요. 예전처럼 3dfx가 독점하다시피 할 때는 또 모르죠.
준 / 04-06-24 11:13/ 신고
저 역시 대학에서 컴퓨터과학을 가르치는 입장에서 약간 발끈했습니다.
'프로그래밍을 하신다니 언어의 사용이 얼마나 중요한지 아시리라 믿습니다.'라는 말을 마음속에 깊히 새기도록 하지요.

한가지 조언을 드린다면 자기 눈으로 확인해본 사항이 아니라면 함부로 말하는 것이 아닙니다.

실제로 동일한 셰이더 코드라도 앞부분의 선언자만 바꾸어주면 똑같은 카드에서도 속도가 달라지는 현상이 나타납니다.
즉 VS_2_0으로 선언된 것을 VS_1_4나, VS_1_1로 선언하는 것 만으로도 속도의 증가가 나타납니다.
그래서 게임쪽 개발자들은 동일한 코드라면 선언을 하위버전으로 하는 것이 일반적입니다.

이것은 어떠한 매뉴얼에도, 권장사양에도 나타나지 않지만 '실제로 존재하는 현상'입니다.

아무튼, 제 얘기의 핵심은 셰이더 3.0이 가진 가능성이 기존 2.0을 훨씬 뛰어넘는 것이라는 얘기입니다.
그래픽에 있어서 화질과 속도만의 문제가 아닌 표현가능한 영역의 확장이라는 개념을 얘기한 것입니다.
준 / 04-06-24 11:19/ 신고
DirectX나 OpenGL이 버전업되는 과정을 전혀 모르고 계시나 보군요.
이들 API의 확장에는 그래픽칩 벤더들이 영향을 미칩니다.
즉, DirectX의 새로운 버전을 개발할때는 반드시 ATI나 NVIDIA의 엔지니어들이 공동으로 하게 됩니다.

그렇기 때문에 그래픽칩의 버전업은 DirectX같은 API의 버전업과 함께 가는 것입니다.
왜 이번 DirectX 9.0에서 NVIDIA가 ATI에 밀린줄 아십니까?

DirectX 8.0의 셰이더 1.4버전이후부터 ATI의 발언권이 한결높아지고, NVIDIA가 밀렸기때문입니다.
그렇기때문에 DirectX 9.0이후버터는 ATI가 더 잘지원되는 것입니다.

MS에서 DirectX 개발팀을 지휘하던 필립 테일러가 ATI로 옮긴것과도 무관하지 않고말입니다.
바람이야기 / 04-06-24 12:17/ 신고
물론 제 눈으로 직접 확인해 본 것은 없습니다. 저도 게임 프로그래밍에 관심이 있어 조금 끄적이고 있지만 어디까지나 dd를 이용한 2d에 지나지 않죠. 하지만 해외 개발자들의 말이니 신빙성이 있다는 판단하에 그렇게 말씀드린 겁니다.

그리고 전 제 눈으로 확인해 본 것도 못 믿습니다. 회의주의자 거든요. 적어도 전 여러 사람과의 대화나 관련 서적들을 읽고서야 겨우 받아들입니다. 하지만 그것도 확신하진 않습니다. 과학은 확신과 동시에 불확실성까지 제공했으니까요.

아무튼 다이렉트 x에 각 그래픽 밴더들이 참여하는 것을 누구나 아는 것입니다. 개발자들도 참여하지요. 그렇다고 해서 그것이 곧 gpu의 버전업으로 이어지는 것은 아닙니다.

예를 들어 보지요. 현제 다이렉트 x9.x버전을 제대로 지원하는 카드가 있을까요? 잘 아시리라 생각하지만 없습니다. 테슬레이터를 지원하는 카드는 매트록스사의 파헬리아 뿐이지만 파헬리아는 다른 부분에서 지원하지 못 하더군요. 테슬레이터가 없으면 디스플레이스먼트 맵핑을 구현할 수가 없다던데, 전 잘 모르겠습니다만. 지금 그래픽카드들이 지원하는 디스플레이스먼트 맵핑은 편법으로 알고 있습니다.

아무튼 제가 드리고 싶은 말씀은 api설계에 밴더들이 참여한다고는 하지만 그것이 곧 자사의 gpu에 바로 적용되는 것은 아니며 따라서 gpu의 버전 업이라기 보다는 api의 버전업이 선행되어진다 라는 것입니다.




바람이야기 / 04-06-24 12:21/ 신고
한가지 궁금한 것이 있는데 그래픽 엔진의 특징을 들면서 물리엔진까지 설명하던데, 물리엔진은 별개의 엔진이 아닌지요? 어째서 그것을 gpu가 처리해야 되는지 이해가 안되서 드리는 말씀입니다.

준 / 04-06-24 13:03/ 신고
나는 해외개발자가 틀렸다고 말한적이 없습니다.
그들의 말과 나의 말이 결과적으로는 동일한 내용이다라고 했지요.

게임은 DirectX만으로 만들어지는것이 아닙니다.
OpenGL같은 경우는 ARB에서 1년에 한두차례 API확장에 대한 공식적인 토의를 가집니다.
(주로 SIGGRAPH컨퍼런스에서 공개적으로 개최됩니다.)
그러나, 이처럼 더딘 확장성때문에 OpenGL에서는 벤더확장이라는 것을 열어두었습니다.
즉, 그래픽 칩 벤더들이 원할때는 언제든지 gl_ARB_NV나 gl_ARB_ATI같은 자사의 고유한 확장을 사용해서 API를 만들 수 있습니다.
이것도 엄연한 표준입니다.

그리고, Shader 3.0 지원기능에 대해서 뭔가 잘못알고 계시는것 같아서 말씀드리는데,
DirectX 9.0에는 이미 Shader 3.0기능이 탑재되어 있습니다.
물론 Shader 3.0에 대한 spec도 DirectX 9.0발표와 동시에 이미 확정되어 있었고 말입니다.

이번에 발표된 NVIDIA의 Shader 3.0은 이에 근거한 것이며,
현재 베타테스트중인 DirectX 9.0c에서는 막아놓았던 Shader 3.0지원을 풀어놓는것에 불과합니다.

그러니, API수준의 지원은 이미 오래전에 완료되어있었던 셈입니다.

그리고, DirectX는 OpenGL과 달리 DirectX의 모든 기능을 지원하지 않아도 상관없습니다.
테셀레이터를 예로 들었는데, 테셀레이터는 결국 패치를 분할하는 것입니다.
이는 정점을 새롭게 생성할수 있다는 것이죠.
기존의 정점셰이더에서는 정점을 새롭게 생성하는 것이 불가능했지만, 셰이더 3.0에서는 이것이 가능한 것으로 알고있습니다.
그렇기때문에 ATI나 NVIDIA같은 큰 회사들에서도 테셀레이터의 필요성을 못느낀 것입니다.

현재 그래픽 기술의 흐름은 고정기능(Fixed Function)을 최대한 없애고, 모든 것을 셰이더 수준에서 처리하도록 하자는 것입니다.
그러니, 향후에 셰이더 수준에서 지원될 테셀레이터를 현재의 칩에서 지원할 필요가 없는 것입니다.

-----------------------------------------------------------------------------------
[물리엔진에 대한 답변]
2004년 Game Developer's Conference자료를 보면 최근의 추세를 알수 있을 것입니다.
링크 : http://www.gdconf.com/archives/2004/index.htm

이것 외에도 siggraph의 최근주제들은 모두 GPU를 범용적으로 다루기 위한 연구에 집중되고 있습니다.
링크 : http://www.cs.brown.edu/~tor/sig2004.html

책으로는 ShaderX2에서 Shader 3.0을 사용한 cloth시뮬레이션 기법을 다루었더군요.

마징가Z / 04-06-24 14:49/ 신고
' 0')/ 호오~! 전문가 여러분 입장에선 어떤 것이 더 매려겨적인가요? PS3? 3Dc?
jeonjehyun (ID) / 04-06-24 16:32/ 신고
댓글에서 많이 배우고 갑니다. 준님, 바람이야기님 감사합니다. 근데요.. 용어 같은건 찾아보면 쉽게 알수 있는데요 상관관계? 라던가 좀더 구체적으로 알려고 하는데 참고돨만한 사이트가 있을런지요..
훔.. / 04-06-24 18:26/ 신고
"대학에서 배우는 사람"이란부분과
"대학에서 가르치는 사람"이란 부분에서 조소.

바람이야기 / 04-06-24 18:30/ 신고
제가 드린 말씀을 도대체 어떻게 이해하셨길래 저런 답글이 나오는지 모르겠습니다.

제가 언제 다이렉트 9.x와 쉐이더3.0의 연관성이나 해외개발자들에 대한 준님의 말씀을 언급한 적이 있었습니까? 댓글 보고 제가 그런 글 적었나 살펴보았지만 그런 것 같지는 않습니다만.

주장하시는 바는 'api수준은 이미 오래 전에 완성되었고 gpu의 지원이 뒤따랐으므로 gpu의 버전업에 의해 더 짧은 코드로 같은 일을 수행할 수 있다'라는 것인데, 대학에서 강의하신다니 국문과 교수님 찾아가셔서 전하시려는 의미와 글이 내포하는 의미가 같은지 문의해 보시기 바랍니다.

그리고 '그래픽칩의 버전업은 DirectX같은 API의 버전업과 함께 가는 것입니다.'라고 하셨지요? 실상 그렇지 못하다는 사실을 제가 '테슬레이터'의 예를 들어 반박했습니다. 필요 없다면 제외할 수도 있다고 스스로도 말씀하셨구요. ati의 경우를 보더라도 그래픽 칩의 버전 업- 9700부터 x800에 이르기까지 - 은 다이렉트x의 버전 업과는 별개인 것처럼 보입니다. 제 말은 새로운 기능을 위한 버전 업이 아닌 단지 성능을 높이기 위한 그래픽칩셋의 버전 업도 있다는 겁니다.

강의하신다는 분이 그렇게 말씀을 애매모호하게 합니까? 그런 식의 말씀은 코에 걸면 코걸이 귀에 걸면 귀걸이가 된다는 것을 잘 아시지 않습니까? 전 이미 달았던 댓글에서 그 점을 분명히 했지만 전혀 다른 이야기를 하시는군요.

그리고

'해외의 프로그래머는 그렇게 보는데, 국내 개발자인 니가 건방지게 왜 딴소리냐? 하는 어투로 보여서 대단히 기분이 나쁘군요.'

왜 스스로가 이런 생각을 하셨는지요? 분명 그런 공격을 받을 수 있다는 걸 알고 계셨기에 그렇게 반응을 한 것이지요. 제 의도는 전혀 파악하시지도 않으시구요. 인터넷은 익명성이란 독은 자신이 아무리 정직했다 하더라도 거짓으로 보일 수도 있는 것입니다.

그리고
'사진과 상관없이 게임프로그래머로써의 관점만 사실에 입각하여 말씀드리죠.'

님의 이 말씀은 자신의 전문가적인 입장을 이용해 '다른 사람의 의견은 볼 것도 없다. 내 말이 맞다.'라고 말하는 것처럼 보일 수도 있다는 겁니다. 조금 더 정중히 쓰셨더라면 스스로가 오해하는 일도 없었을 겁니다.

마지막으로 물리 엔진에 대한 질문에 답변해 주신 점 감사드립니다.
ㅋㅋㅋ / 04-06-25 1:25/ 신고
에이 이것들아 엔비디아가 싫으면 싫다고 그래 뭔놈의 어려운말쓰면서 그러냐.ㅋㅋㅋ
흐흐 / 04-06-25 10:10/ 신고
그러게 3.0이 2.0보다 나쁘다는건 아닌데,
어차피 1년못가 새 코어가 나올건데 현시점에서의 지원게임도 얼마 없는 상황에서 비싼 돈 들여 3.0지원 카드를 왜 사겠냐는 말입니다.
rockcd (ID) rockcd님의 미디어로그 가기  / 04-06-25 13:01/ 신고
음.. 인간이 프로그램을 짜는데.. 더 쉽게 짤 수 있다는 뜻이죠? .. 맞나.. 그렇다면.. 하드웨어적으로는 같은 일을 할 때 , GPU에서 하는 일이 증가하는 것 아닌가요? c언어도.. 포인터를 이용해서 프로그램을 작성하면 인간은 힘들지만, 컴퓨터는 좀 더 효율적으로 할 수 있는 거니까요.. 프로그래밍이라면, c언어와 같이 큰 맥락에서 벗어날수 없다고 생각되는데요..고로.. 프로그램을 작성하기 힘든 하위버전들이 성능으로 볼때는 더 좋은 효과를 가져올수 있지 않을지요..
바람이야기 / 04-06-25 22:06/ 신고
c언어에서도 몇 가지 금기사항이 있습니다. if문을 적게 쓰라던가 goto문을 쓰지 말라 든가 하는 것들이죠.

if문의 경우 c언어로 볼때는 하나의 명령어이지만 기계어 코드로는 3개인가로 알고 있습니다.

픽셀 쉐이더3.0은 이런 if와는 달리 3개의 기계어로 처리하던 것을 1개의 기계어로 처리할 수 있는 명령어가 추가된 듯 합니다. 사람도 코딩을 더 적게 할 수 있고 gpu도 3번할 것을 1번에 할 수 있게 되겠지요. 물론 3개니 1개니하는 것은 예일 뿐이고 명령어가 얼마나 효율적인지는 잘 모르겠습니다.
그래서 / 04-06-26 15:24/ 신고
2.0과 3.0의 차이가 크지 않다는게 알려졌으니

NV40에서의 3.0과
R420에서의 2.0의 속도차이를 비교하면 되겠군요

NV40에서 2.0과 3.0의 속도차이를 비교하는건 무의미하다고봅니다.. NV계열에서 SM2.0의 속도저하는 잘 알려진 사실이니까요
그래서2 / 04-06-26 16:49/ 신고
NV4x에서 2.0과 3.0의 속도차이를 비교하는게 타당하지요.
DX9게임중 2.0지원게임이 95%도 넘으니, 3.0지원게임은 5%나 되려나?

닉네임 lock
비회원

보드나라 많이 본 뉴스
보드나라 많이 본 기사

보드나라 최신 기사
[06/23] SDT, ‘양자컴퓨팅 서비스 및 활용 체계 구축’ 사업 합류  
[06/23] MAXTILL, 8월 초 공냉·수냉 CPU 쿨러 신제품 10종 출시 예정  
[06/23] 아스크텍, 써멀테이크 UX400, UX400 ARGB Sync 공랭쿨러 출시  
[06/23] 대원씨티에스 x ASRock X870, B850 제품 대상 구매인증 이벤트  
[06/23] 마이크로닉스, 2025 히트브랜드 기념 '클래식 II 골드 풀모듈러' 특가 진행  
[06/23] 벤큐 AI 전자칠판, 교육 앱 ‘RosiMosi’ 전 제품 탑재  
[06/23] 뷰소닉, 쿠팡 ‘와우빅세일’ 7월 특별기획전 진행  
[06/23] ASUS, 최신 AMD 크라켄 포인트 탑재한 TUF A14 출시! 압도적 퍼포먼스 제공  
[06/23] 넷마블, ‘샹그릴라 프론티어’ 신규 게임 영상 공개  
[06/23] 넥슨, NYPC 10주년 기념 대학생 리그 <CODE BATTLE/> 및 NYPC 2025 참가 신청 개시  
[06/23] 유무선 잠자리 8K 게이밍 마우스 ATK X1 Ultimate 신규 컬러 출시  
[06/23] 네오플, ‘사이퍼즈’ 14주년 쇼케이스 ‘Highfive’서 신규 캐릭터 공개!  
[06/23] 퍼플랩, G마켓 빡세일 참여AMD부터 NVIDIA라인업 특가!  
[06/23] 틱톡, '틱톡 포 크리에이터 서밋' 성료  
[06/23] 슬림 영상편집 노트북, 기가바이트 AERO X16 정식 출시 및 G마켓 단독 특가  
[06/23] 제이씨현, 공간의 제약을 초월한 기가바이트 X870, B850 스텔스 메인보드 2종 출시!  
[06/23] 컴투스 ‘MLB 라이벌’, 2주년 기념 대규모 이벤트 돌입  
[06/23] 유니씨앤씨, 삼성 갤럭시북5 프로/올인원 프로 LIVE Summer Academy 혜택  
[06/23] 에스라이즈, 쿠팡 와우 빅세일 시작 HP 게이밍 노트북 할인 진행  
[06/23] ASUS, 지마켓 빡세일 통해 인기 노트북 특별가 판매 진행  
로그인 | 이 페이지의 PC버전
Copyright NexGen Research Corp. 2010