After doing a search on the forum for GLSL, I’ll dare to demonstrate my awesome necromancy skills on this thread
I “write” shaders. I’ve been doing 3d art for a long time, but had zero experience with scripting, game engines and such. My introduction to scripting was initially through Rhino and architecture, but at one point I got to work with some flash devs who were experimenting with Away3D. I paid attention to what went on with AS3 which was somewhat confusing. What, to everyone’s surprise, seemed to make most sense to me, was something called AGAL which is basically an assembly shader language (opcodes, registers), but I saw colors and vectors.
From there I went to unity, step by step moved from tampering with surface shaders to CG, and later picked up WebGL through a user-friendly library, but i’ve been learning GLSL.
My original intention was to just work on a low poly art portfolio. But I hit a wall with normal maps, the workflow, the issues. I’m still under the impression that most 3d artists have an array of different hacks for doing this type of thing.
I decided the only way to proceed was to try and do my own synced workflow with an arbitrary engine. After a whole bunch of experimentation, i ended up with a pretty nifty workflow, that allows me to do a bake within Max, export the tangent space with a json format, and unpack the normals with a specific shader. After solving a gamma issue related to the nature of WebGL / browsers, the results look pretty good. It seems pretty hard to get seams by accident, and it seems to be performing pretty well.
It’s got some reduntant stuff as is (worst is the normal transformation from world to view in the pixel shader), some experimental lines, but this can all be stripped down to the bare bones - a phong shader, with a rim term, sampling a cubemap, unpacking normals. It’s simple to do all the calcs in the same space, get all the vectors and reduce the amount of operations.
http://dusanbosnjak.com/test/webGL/new/poredjenjeNM/poredjenjeNormala_01.html
Sure, things like shadows and transparency are complex, but a surface shader is a relatively simple concept, plus there are tons of stuff animation wise that an artistic person can do.
The world/ view/ screen transforms seem like a useful thing to know for anyone more tech oriented in the 3d world. The whole theory allowed me to better understand what a mesh is made of, how triangles are made, what is a seam (how many verts are there, how many normals) etc. etc. But in the end, i don’t know how to automate a batch export/ bake somewhere else/ import process with a nice user friendly GUI.
Could anyone give some advice on how to direct these skills more towards gaming? On one hand I understand that this could be scratching the surface of what an engineer does, but on the other, it’s a good exercise for 3D math, and having low level access as an artist might allow for some interesting effects to be made. Nevertheless it’s useful for the web.