**Developing New Tech** Planning ==== With Artist + Programmer (+ Art Lead + Programming Lead) 1. Look 1. Concept art 2. Example images/videos from other games 3. Photos from the real world 4. Conversation: "Like this, but ..." 2. Budget 1. How much run time (CPU/GPU)? 2. How much data (CPU/GPU)? 3. Preprocessing? Level load? Background ==== How have others done anything similar 1. Papers 1. For rendering: I3D, HPG, JCGT, SIGGRAPH 2. Focus on conferences with real-time focus 3. Gems, ShaderX, etc. books 2. Presentations 1. GDC (some free in Vault, check for slides elsewhere) 2. SIGGRAPH courses 3. NVIDIA GTC 3. Blogs 1. Google 2. Gamasutra (but doesn't always get technical enough) 3. Game developer twitter 4. Graphics weekly Prototype ==== 1. *Fast* iteration, fake assets 1. Small test map or sandbox app 1. Many developers build a sandbox app outside game engine 2. Mine auto-reloads any shader file or image file change, sliders for shader parameters, load static models but not animation 3. For shader only, I've even used shadertoy 2. OK to test on plane, cube, sphere 2. Mock up effect, share with artists 1. Feedback: is this going in the right direction 2. It won't look final, try to look past that. Implement in Game ==== 1. Leave control to artist 1. Textures with as plausible as possible default 2. Parameters 1. With plausible defaults 2. And limits on values 2. Reparameterize texture parameters * Should be 0-1 3. Make a preprocessing stage on import or load if necessary Tune ==== Art step 1. See if desired look is achievable 2. How hard to achieve? 3. Loop back with programmer for feedback & tuning Optimize ==== 1. Once final, make a pass to optimize perf & memory 1. Bake in some parameter values 1. Preprocess computation into textures Technical Artist workflow ==== 1. Some studios have tech artists who write shaders & scripts or blueprints 2. Tech artist through prototype or implement, may still need programmer to optimize Examples ==== 1. Civilization V water 1. Near and far shots of sun on water 2. Desire to avoid aliasing in other solutions 3. Existing tech with scrolling layers of texture 4. Prototype in OpenGL/GLSL sandbox 5. Implement into D3D/HLSL engine 6. Artist tuning 7. Second round for sun position, water surface look 2. [Blog series by Sébastien Legarde](https://seblagarde.wordpress.com/2012/12/10/observe-rainy-world/). Development of rain effects for DONTNOD's Remember Me (2012).