皆さん、こんにちは!!!
私は 1 分間自由に使えるので、GameDev 企業の 3D グラフィックス プログラマーにインタビューするための簡単なガイドをまとめることにしました。私自身もこの分野で働いており、面接を受けに来たばかりの人や、長年働いていて複数のプロジェクトが完了し、その背後に多くの解決済みの仕事の問題やタスクを抱えている人など、さまざまな人々と多くのコミュニケーションを取っています。このトピックに興味がある場合は、猫の下にいるすべての人に尋ねます。
ほとんどの企業では、この職業/方向性を2つに分けるのが通例です:
1人目はゲーム グラフィックスのスペシャリスト、2 人目はコンピューター グラフィックスのスペシャリストです。違いは何ですか?最初のものは 2 番目のものの自然な継続であるとだけ言っておきましょうが、必ずしもそうとは限りません。たとえば、VFX の専門家として働き始め、パーティクル エフェクトを作成し、3D モデルをそれらに「ねじ込み」、すべてのパーツを組み立て、シェーダーを作成し、コードベースを操作します。つまり、ここでは、ゲームの視覚的なデザインとその個々の要素に重点を置いています。あなたのタスクには、ゲームの一般的なスタイル、そのジャンル、カラー デザイン (ホラー、mathc-3d、ファーム、サンドボックスなど) を考慮した、「許容可能な」レベルでの視覚効果の開発が含まれます。ここでは最適化の問題が重要ですが、それほどグローバルではありません。
- , (//). , , , , , , , (, , , - (, ..), .
, , . , , , , , : , VFX, , , ..;
, , (Unity / Unreal / Cryengine) , , , gamedev ( ) , .
. , , . , , ;
, , : (++, #, Python), (, , , , , ); (3D , /, , , ); (, , , ), . , , , - beginner, junior, middle, senior lead. ;
++
- , delete. , , . . const, volatile, statistic, Virtual. , , ;
- , ?;
: 1. , ; 2. ; 3. ; 4. ;
- , . : 1. ; 2. : , , , ; 3. ++;
- ?;
() . , , , , , , . , /. : , . ;
- inline - ?;
inline , . , , , . , , ;
- : 1100 0000 0000 0011?;
"" , ;
- ?
, , , . : , , , , ;
- ++, ?;
- ;
/ - , , , , , "", (thread). , ;
- ?;
, , std::terminate();
- , ?;
, , "" , . , (, ..) . .
virtual. - , : 1. , , ; 2. ;
- VFX ?;
, , 3D/2D , , , , , : , , , ;
- (MSAA, MLAA, FXAA, TXAA) - ?
SSAA (Super-Sampling) - . (4) , , . , , , . : 19201080, 4 — 38402160. ;
MSAA (Multisample anti-aliasing) — SSAA, . . , 8 MSAA 4 SSAA ;
CSAA CFAA (Coverage Sampling anti-aliasing Custom-filter anti-aliasing) — MSAA, «» , . 8x CSAA/CFAA 8 x MSAA , , 4 MSAA. – ;
FXAA (Fast approXimate anti-aliasing) — . . , "" , . ;
MLAA (MorphoLogical anti-aliasing) — FXAA. Z, L U - , , . , , fps . , FXAA. – «»;
SMAA (Subpixel Morphological anti-aliasing) — FXAA MLAA - MLAA, . , MLAA, , FXAA, . FXAA, 2 x MSAA. ;
TXAA(Temporal antialiasing) — «» . MSAA SMAA, , , , . . . ;
- Paralax Mapping, , , Post-processing?
Paralax Mapping - bumpmapping, . Parallax mapping 3D- .
- V-Sync – . ;
Post processing - , 3D- ;
- . , , . 3D-;
- ?;
, — , . , , . , , multiple render targets — MRT, .
, , . , , , , ;
- 2D-3D (Houdini, Maya, Blender, Nuke, Substance Painter, Photoshop) ?
, / /, Artstation, Behance, . , , , , , , ;
, , , , . - / , "" , , ;
, ( «») -, 2D 3D . - , UV-, , , - , " " - , , Houdini, Maya, 3dsMax, Clarisse .. , , , , .. Redshift, Arnold, V-Ray, Mantra. GPU , ;
- - ?;
PBR (Physical Based Rendering) - , , . PBR , -;
- BRDF ?
- 3- :
1. ;
2. ;
3. ;
, . , . , , . , , .
- Vulkan API OpenGL?;
- , , , . , , , ;
- Forward vs Deferred ?;
Forward render - , , , Deffered Rendering. , / .
Deffered rendering . , GBuffer. GBuffer . Deffered Rendering , GBuffer, ;
- ?;
1. , / , / ( ), / ; 2. , ; 3. blur, glow "" ; 4. - /, , (normal/roughness/metalness/emission/diffuse/..); 5. / , , ; 6. , , ;
, , ;
- , /?;
: Siggraph, TotalChaos, GTC Nvidia, European Association of Rendering and CG : habr.com, arrXive.org ..;
- RenderDoc?;
RenderDoc - () MIT, Vulkan, D3D11, OpenGL, OpenGL ES, D3D12 Windows 7-10, Linux, Android, Stadia Nintendo Switch. Doom CyberPunk;
- SSAO, HDR, SSR?;
Screen Space Ambient Occlusion — . SSAO Ambient Occlusion . SSAO , GPU Ambient Occlusion .
SSAO post process. SSAO , : , , , , CPU. SSAO Crytek CryEngine 2, Crysis 2007 .
HDR - , . , , , , , . HDR . . HDR , .
Server-Side Rendering (SSR) . backend API HTML .
- ?;
1. Vertex/index buffer -> input assembler ( , , ) ->
2. Vertex shader ( ) ->
3. Tessellation ( ) ->
4. Geometry shader ( ) ->
5. Rasterisation ( , - , . , , , , , ) ->
6. Fragment shader ( , . , ) ->
7. Color blending ( , . .) ->
8. Frame buffer;
, .
- API GPU?;
CUDA SDK (NVidia), Vulkan (MoltenVK), DirectX SDK;
- GPU CUDA?;
: 1. ; 2. ; 3. ; 4. ; 5. .
CUDA Runtime API, CUDA Driver API CUDA Libraries. Runtime Driver API . , , – , - ;
- - L1, L2?;
- L1 — , , , , , 256 - 2 . : . , , , ;
L2 , L1, . 256 8 . , , , ;
- SIMD Muti-threading, ?;
SIMD -" , " , , CPU , (, ADD, MULTIPLY, AND, XOR) ;
, , CPU, . , SIMD, . , , , .
, , . , ;
- . , ;
- NSight (NVidia) ?;
NSight - . - . , , . , , , , . NSight;
- : , , ?;
, , , . , (). . , , . ;
- ( (, , ), , , ?;
, , ( ). - , ; - , ; / - , ; - ;
- ?;
– , ;
- ?;
- . (+ , , ), - (Git, Mercurial, Bazaar, Darcs), ( , , - SPOF - SVN, CVS, Perforce). Git SHA-1 , , ;
- /GUI /?;
SourceTree, GitKraken, , ;
- merg, rebase, fetche, pull, push?;
$git fetch <remote-name> , ;
$git fetch <remote-name> ;
$git pull ;
$git push <remote-name><brach-name> ;
$git merge - ;
$git rebase -
Merge - , ; Rebase - , , , . Rebase , , merge;
- ?;
, . , , . . . Source Tree ;
もちろん、これらの質問は追加の質問で拡張できますが、ここでは要点のみを聖別してみました。