Archive

Archive for April, 2007

cgfx 쉐이더 이벡트 Template 파일

April 17th, 2007 1 comment

fx composer 1.8로 기본 쉐이더 effect를 만들면 DirectX에서 쓸 수 있는 기본 *.fx 파일이 나온다. 이와 동일하게 Cg 1.5에서 사용할 수 있는 기본 cgfx 파일의 템플릿을 만들어 보았다.

newEffect.cgfx

Categories: dev:game Tags: ,

cgfx 안에서 쓸 수 있는 state

April 11th, 2007 No comments

Available state variables


Binding                             Underlying State
———————————   —————————
state.matrix.modelview[n]           modelview matrix n
state.matrix.projection             projection matrix
state.matrix.mvp                    modelview-projection matrix
state.matrix.texture[n]             texture matrix n


state.material.ambient         (r,g,b,a)   front ambient material color
state.material.diffuse         (r,g,b,a)   front diffuse material color
state.material.specular        (r,g,b,a)   front specular material color
state.material.emission        (r,g,b,a)   front emissive material color
state.material.shininess       (s,0,0,1)   front material shininess


state.light[n].ambient         (r,g,b,a)   light n ambient color
state.light[n].diffuse         (r,g,b,a)   light n diffuse color
state.light[n].specular        (r,g,b,a)   light n specular color
state.light[n].position        (x,y,z,w)   light n position

state.matrix.modelview.inverse : 역행렬
state.matrix.modelview.invtrans : 역행렬 트랜스포즈까지

Categories: dev:game Tags: ,

STL Vector 내부 내용 확인하기

April 10th, 2007 No comments

STL 컨테이너 사용할 때 내부 내용을 쉽게 알아보려면 watch 창에 다음과 같이 치면 된다.

kk의 내용을 알고 싶으면 디버깅 중 조사식 창에 다음과 같이 하면 내용을 알 수 있다.

먼저 size를 구하기 위해서 kk.size()를 쳐보면 위 소스에서는 3을 얻을 수 있을 것이고,

kk.size()

내용을 알려면 kk._Myfirst,3 이라고 치면 벡터안의 내용이 조사식 창에 뜬다.

kk._Myfirst,3
Categories: dev:game Tags: , ,

마우스 오른쪽 버튼 눌렀을때 뜨는 ATI CATALYST 메뉴 없애기

April 2nd, 2007 No comments

레지스트리 편집기를 열어서 다음의 키를 삭제합니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\
shellex\ContextMenuHandlers\ACE

Categories: Tech& Tip Tags:

한영 변환 오류 수정

April 2nd, 2007 No comments

노트북에서 한영키를 눌렀는데 알트키 (ALT) 를 누른것과 같은 현상이 발생할 경우

1. 시작 -> 내컴퓨터 오른쪽 마우스 버튼 -> 속성 -> 하드웨어 탭 -> 장치 관리자 버튼 누름
2. 키보드 앞의 “+” 를 클릭해서 확장 -> 밑에 선택된 드라이버를 오른쪽 마우스 버튼 -> 속성
3. 드라이버 탭 -> 드라이버 업데이트 버튼 -> 목록 또는 특정 위치에서(고급) 선택 -> 다음
4. 검색 안 함. 설치할 드라이버를 직접 선택 -> 다음
5. 호환 가능한 하드웨어 표시 해제
6. PC/AT 향상된 PS/2 키보드 (101/102키) 선택 -> 마침 

Categories: Tech& Tip Tags:

nVidia GPU List

April 2nd, 2007 1 comment

nvsdk 10에 들어있던 자료로 nVidia 그래픽 카드 전체에 대한 코드명과 제품명이 들어있다.























































































































































































































































































































ID Chip Product
1 NV5 TNT2
2 NV5 TNT2 Pro
3 NV5 Vanta LT
4 NV5 Vanta A
5 NV10 Geforce 256
6 NV10 Quadro 2
7 NV11 Geforce2 MX
8 NV11 Geforce2 Go
9 NV11 Quadro 2 Go
10 NV15 Geforce2 GTS
11 NV16 Geforce2 Ultra
12 NV16 Geforce2 Ti
13 NV16 Quadro2 Pro
14 NV17 Geforce4 MX
15 NV17-M Geforce4 4×0 Go
16 NV17-NVS Quadro4 x00 NVS
17 NV17-GL Quadro4 x00 XGL
18 NV18 GeForce4 MX
19 NV18-M GeForce4 4×8 Go
20 NV18-NVS Quadro4 280 NVS
21 NV18-GL Quadro4 x80 XGL
22 NV20  GeForce3
23 NV20-GL Quadro DCC
24 NV25 Geforce4 Ti 4200
25 NV25 GeForce4 Ti 4400
26 NV25 GeForce4 Ti 4600
27 NV25-GL Quadro4 7xx XGL
28 NV25-GL Quadro4 900 XGL
29 NV28 GeForce4 Ti 4800
30 NV28 GeForce4 Ti 4200-8X
31 NV28 GeForce4 4200 Go
32 NV28-GL Quadro4 980 XGL
33 NV28-GL Quadro4 GO 700
34 NV30 GeForce FX 5800
35 NV30-GL Quadro FX 1000
36 NV30-GL Quadro FX 2000
37 NV31 GeForce FX 5600
38 NV31 GeForce FX Go5600
39 NV31-GL Quadro FX Go700
40 NV34 GeForce FX 5200
41 NV34 GeForce FX Go5100
42 NV34 GeForce FX Go5200
43 NV34-GL Quadro FX 500
44 NV35 GeForce FX 5900
45 NV35-GL Quadro FX 3000
46 NV36 GeForce FX 5700
47 NV36 GeForce FX Go57xx
48 NV38 GeForce FX 5950
49 NV40 GeForce 6800
50 NV40-GL Quadro FX 4000
51 NV41-GL Quadro FX1400
52 NV42-GL Quadro FX 3450
53 NV43 GeForce 6600
54 NV43 GeForce 6600 GT
55 NV43-GL Quadro FX 540
56 NV44 GeForce 6200
57 NV45 GeForce 6800 Ultra
58 NV45 GeForce 6800 GT
59 NV45-GL Quadro FX 4400
60 NV45-GL Quadro FX 3400
61 G70 GeForce 7800 GT
62 G70 GeForce 7800 GS
63 G70 GeForce 7800 GTX
64 G70 GeForce 7800 GTX 512
65 G70-GL Quadro FX 4500
66 G71 GeForce 7950 GX2
67 G71 GeForce 7900 GTX
68 G71 GeForce 7900 GT
69 G71 GeForce 7900 GS
70 G72 GeForce 7300 GS
71 G72 GeForce 7300 LE
72 G73 GeForce 7300 GT
73 G73 GeForce 7600 GT
74 G73 GeForce 7600 GS
75 G80 GeForce 8800 GTX
76 G80 GeForce 8800 GTS

gpulist.xls

Categories: dev:game Tags: , ,

Cg, GLSL, HLSL의 비교

April 2nd, 2007 1 comment

HLSL은 DX와 붙고, GLSL은 OGL과 붙는다.
Cg는 Interface와 Unsized Array가 있다. Cg는 산업전반에서 많이 사용되고 있지만, 한동안 정체인 상태이고, crytek같은 게임회사와, Maya도 사용하고 havok도 HavokFX에 사용하고 있다. 외부라이브러리 사용하기 싫어하지 않는다면 Cg를 사용하면 좋다.


GLSL 프로파일이 있어서 Cg로 짠 코드를 바로 GLSL로 만들수도 있다.


GLSL의 단점: 드라이버 지원미약
Cg는 새로 dll만 떨구면 되서 편함.
GLSL은 FX 스타일의 효과가 없고, Cg에는 CgFX가 있다.


HLSL은 대부분의 D3D 어플에선 잘 되지만, 유연성이나 기능면에선 Cg가 낫다.
CgFX는 D3D의 FX보다 낫다. (State나 Mode가 더 많다.)
FXComposer가 CGFX를 지원하는 이유다.
D3D의 FX에는 state나 mode가 제한적이다. Bump mapping 할 때는 괜찮겠지만 더 복잡한 쉐이더를 만들 때는 한계가 있다.


현재 Cg에서는 의미없는 API가 렌더링 루프에 들어가서 느려지는 문제가 있다.


셋 다 할만한다. 가장 안좋아하는 거는 GLSL인데 형안정성을 조금더치중하는것때문에.
nVidia꺼에서GLSL을사용하면 타입에러는 모두 없애준다. 포터블한 코드를 만들 수는 없어서
좀매 짜증난다.


Cg는 좋다. 현재 API를 사용할 때에는 state를 관리하는데 좀더 신경써야 한다.(속도측면에서)
state set이 되면 shader랑 effect를 쉽게 붙일 수 있다.
API를 줄이는 것이 중요하다.


Cg는 cgc만으로도 가치가 있다. 하이레벨언어를 ARB_*_program 어셈블리를 만들 수 있으니 D3D와 OGL언어를 타겟으로 한다.