2008-08-09 2 views
18

Microsoft의 XNA를 사용하여 게임 개발을 시작하고 싶습니다. 그 중 일부는 Shader 개발이지만 시작하는 방법을 모릅니다. nVidia's FX Composer은 쉐이더를 개발하는 훌륭한 도구이지만, 실제로 시작하는 방법에 대한 많은 유용하고 업데이트 된 내용을 찾지 못했습니다.쉐이더 개발 시작

어떤 자습서를 권하고 싶습니까?

답변

31

개발 HLSL 또는 쉐이더 어셈블리의 지식이 필요합니다. 나는 후자로 뛰어 들기 전에 전자에 익숙해지는 것이 좋습니다.

는 쉐이더를 작성하기 전에, 쉐이더 파이프 라인의 확실한 이해를 얻고, 프로그램 쉐이더를 사용할 때 가능 무엇의 주위에 당신의 마음을 얻기 위해 시도하는 것이 좋습니다. 소스 데이터에서 화면까지 픽셀의 수명에 익숙하면 셰이더 예제를 이해하는 것이 훨씬 쉬워집니다.

는 다음의 Fixed T&L 파이프 라인이 당신에게 더러운 손을 얻기 위해, 어떻게 무엇을 사용하지 않습니다 자신의 HLSL을 작성을 시도합니다. 이것은 버텍스/픽셀 쉐이더 세계에서 "hello world"프로그램과 동일합니다. 당신이 그것을 할 수 있고 당신이 쓴 것을 이해한다면, 당신은 더 재미있는 것들로 나아갈 준비가 된 것입니다. 단일 광원으로부터 기본 sepcular lighting 쉐이더 중 하나를 시뮬레이션 할 수 있습니다 다음 단계로

. 이 트랙을 다중 조명을 사용하도록 적용 할 수 있습니다. 색상과 빛의 움직임으로 놀아보세요. 이것은 쉐이더 상수의 사용법을 익히는 데 도움이 될 것입니다. 당신이 함께 기본적인 쉐이더의 몇이있을 때

, 당신은 당신의 게임/엔진이 다른 개체에 여러/다른 쉐이더를 사용하도록 그것을 시도해야한다. 기본 비트 인 bump 또는 normal maps을 추가하십시오.

이 단계에 도달하면 전 세계가 굴입니다. 펑키 한 이펙트로 다이빙을 시작할 수 있으며 원래 의도 한 것보다 more에 GPU를 사용하는 것도 고려할 수 있습니다.

좀 더 고급 인 분들을 위해 무료 온라인에서 사용할 수있는 좋은 책이 몇 가지 있습니다. 여기에는 Nvidia herehere의 멋진 정보가 있습니다.

ShaderX라는 멋진 일련의 멋진 쉐이더 항목을 다루는 것을 잊지 마십시오. 1, 2, 3, 4, 56이 이미 인쇄되어 있고 곧 7이 올 것입니다.

행운을 빈다. 어떤 쉐이더를 사용하게되면 나는 그들을보고 싶어합니다.

+0

답장을 보내 주셔서 감사합니다. 물론, 내가 뭔가를 얻고 링크를 추가하자마자 :) 몇 달 더 걸릴 수 있습니다. –

1

SAMS의 XNA Unleashed 차드 카터는 XNA을위한 좋은 출발점이 될 것입니다 당신이 시작하기 전에 게임 개발 관행이나 하드 수학의 작은 지식을 가정합니다. 기본 및 고급 쉐이더에는 두 개의 장이 있습니다.

사이드 냅으로 Google for WPF Shader 자습서에 주목하십시오. 이제는 동일한 기술을 사용하여 WPF 응용 프로그램 및 자습서에서 고객 쉐이더를 허용하여 XNA와 크게 호환됩니다. (분명히 다이렉트 X를 사용) XNA 쉐이더의

5

저는 GPU Gems 서적이 얼마나 훌륭한지 다시 한번 말씀 드리고 싶습니다. 진지한 그래픽 개발을위한 정말 훌륭한 자료입니다.

OJ는 기본적으로 훌륭한 학습 과정을 요약 했으므로 기하학적 수학 (벡터/행렬)을 기초로 삼는 것이 과소 평가 될 수는 없다고 덧붙였습니다. 그렇지만 사람들이 때때로 만들어내는 것만 큼 어렵지는 않습니다. 아웃. 행렬 곱, 십자가 곱, 법선 벡터 및 행렬 곱셈이 무엇인지 배우는 것이 좋은 첫 번째 단계입니다. :). 월드/뷰/투영 클립/스크린 공간, 원근법 분할 등이 정확히 무엇인지 이해하려고 노력하십시오.

학습을 시작했을 때 실제로 전체 T & 파이프 라인을 구현하는 것이 좋습니다. 소프트웨어로는 클리핑/컬링 (clipping/culling) 등으로 끝내야합니다. 이것은 오랜 과정이므로 재미있는 부분에 뛰어 들고 싶지만 실제로 진행되고있는 일에 대해 올바르게 이해하고 있으면 유용 할 것이며 가치가있을 것입니다. 버그를 진단하기가 더 교활하고 어렵다.

처음에는 FX 작곡가와 같은 도구를 사용하지 않아도되므로 프로토 타이핑에 유용하지만 기초적인 견고한 기반은 장기적으로 볼 때 훨씬 가치가 있습니다.

1

XNA 또는 DirectX를 사용하지 않았습니다. 그러나 Cg로 쉐이더 프로그래밍의 기초를 알기 위해 Cg Tutorial이 내가 찾은 최고의 책입니다.

1

또한 RenderMonkey를 살펴 봐야합니다. 좋은 도구입니다. 지금까지 책을 읽으면서 Riemer Grootjans의 XNA 2.0 게임 프로그래밍 레시피를 확인해보십시오. 훌륭한 책입니다.

2

나는 OJ에게 주어진 칭찬에 참여할 것입니다 - 정말로 좋은 대답입니다. 그래도, 당신은 다음과 같은 두 가지 훌륭한 도구 중 하나를 다운로드하여 많은 빠른을 배울 수있는 기본적인 이해가 수행되면 :

일단 그렇게하면, 프로젝트 라이브러리로 가서 기본 쉐이딩부터 시작하여 쉐도우, 일반 매핑, 재질, 효과 및 원하는 모든 것을 탐색하여 예제를 탐색하십시오. 프로젝트를 시작하고 설정 한 목표에 따라 알고리즘을 변경하고 가져 오는 방법을 살펴보십시오. 많은 예제가 실제로 진보되어 있으며 여러분의 시야가 열리게 될 것입니다. 당신이 단계는 참여의 주위에 당신의 마음을 얻기 힘든 작업하는 데 문제가있는 경우

이 좋은 조언을 많이가 이미 주어졌다 동안 재미

2

가지고, Mental Mill이 쉐이더를 구성하는 시각적 인 방법을 제공합니다 (아티스트 에디션입니다 Fx Composer와 무료로 번들 제공 - 자체도 무료!).

HLSL 코드를 장기간 학습하는 것이 더 좋지만, Mental Mill은 이러한 Fx 파일을 생성 할 수 있으므로 변경 사항을 미리 볼 수 있습니다. 모든 코드 생성기와 마찬가지로 HLSL을 이해하면 할 일이 많습니다.

한 방법에서 다른 방법으로 효과가 시각적으로 진행되면 매우 인상적입니다!

1

시각적 인 셰이더 편집기에 대한 간단한 생각. 그런 종류의 편집자는 매우 재미있는 일이지만, 실제로 텍스트 기반 HLSL (RM과 FXC가 함께 작업)을 사용하는 것이 좋습니다.나는 게임 개발자로 일하고 몇 가지 쉐이더 시스템 (예를 들어 Battlefield 2와 Farcry 2에있는 시스템)을 구축했으며 HLSL은 현재까지 그래픽 쉐이더 네트워크보다 더 가치가 있음을 발견했습니다.

실행 흐름, 셰이더 디버깅 또는 시각적 도구를 통해 얻는 것이 거의 불가능한 통찰력을주는 테스트 사례를 신속하게 반복 할 수있는 것과 같은 것들이 있습니다.

저는 시각적 셰이더 빌더를 직접 사용해 보았습니다. 나는 그 (것)들을 좋아하고 언젠가는 셰이딩이 오늘날처럼 성능에 결정적이지는 않지만 언젠가는 작업에 적합한 도구 일 수 있습니다. 쉐이더를 시작하는 가장 좋은 방법 중

3

한) 3D 게임 프로그래밍 소개를 읽을 수있다, 내 생각 엔 ..though

그 날이 오기 전에 우리가 이연 조명과 아마 전체 소프트웨어 렌더링을 볼 수 있다는 것입니다 DirectX 9.0ca Shader 접근 방식 Frank Luna. 먼저 DirectX와 HLSL을 소개 한 다음 셰이더의 힘을 점진적으로 보여줍니다. 그는 아주 간단한 쉐이더로 시작하지만 책이 끝날 때까지 조명, 그림자, 입자 시스템 등을 만드는 법을 배웁니다.

OJ는 ShaderX 시리즈를 읽을 것을 제안했지만 초보자를위한 것은 아니므로 처음 단계를 수행 할 때 도움이되지 않습니다.

나는 또한 게임 개발을 시작할 수있는 최고의 책에 관한 기사 here을 게시했습니다.

+0

정말 재미있는 책처럼 보입니다. 예, ShaderX와 GPU Gem을 모두 보았지만 정말 하드 코어 인 것 같습니다. 브루스 슈나이어 (Bruce Schneier)가 암호를 아는 것조차 모르는 것을 읽는 것. 루나의 책을 주문할 것 같아. –

+0

내가 언급 한 책을 실제로 편집했습니다! :) –