Archived post by Glad-Partikel

In games and realtime VFX stands for Visual Effects Artist. This is to differentiate from Sound Effects. Often a gameplay feature (think a cool powerup) needs both. There’s no better reason for it than that. So a VFX artist handles particles, some shaders and some animation. There’s a lot of overlap with tech artists who also do shaders and certain types of animation. The other parts of what is known as VFX in film, is just part of the art pipeline. Making models, shading, lighting, texturing and so on is al under art. Now, scene building has overlap between environment art and level design as every scene needs to look good, but the first priority is that it plays well.  

Because of this, it should be relatively easy to move from film as a modeler. The main new issue is the lower polycount and hard constraints on number of materials used. There is also a lot bigger demands on your LODs. Textures follow PBR rules which should match as long as your shaders are correct. For a lighter there are also similarities, but some more technical issues to handle. You need to be aware of how light gets baked into the scene, how to work with limited bounce, dynamically changing light like time of day and destruction of buildings. You will also usually be in charge of post processes, which essentially is as far as it gets into compositing. For shaders you go to Tech Artists. They know the ins and outs of the engine and pipeline. They are the link to coders. They make sure your shaders look good but are lightweight enough to render at 60 FPS. This role varies a lot from company to company. Animation has overlap. However, unless you work on cutscenes or cinematics, you won’t be doing long sequences. It will mostly be loops or parts of animations that then get blended together in the engine as the player does things. PCap and all that still happens though, so there’s a big part of the animation pipeline that’s the same.


Building assets is always just the first step. Everything needs to be collated in the engine. Animations need to trigger based on player input. Smokesimulations need to be brought in and played back on sprites. Environment art assets needs to be matched with collision so the player can interact with the world and traverse it. On top of this it all has to perform fast enough on pretty old hardware. Not only rendering which happens on the GPU, but the CPU calculations. The CPU is already handling all the fun gameplay code like making AIs find their way around the world or figuring out what the hell the joint rotation means for this skinned mesh and so on. It gets real sad if it also has to send a call to the GPU to draw your fancy rock more than once because you figured that the mosslayer deserved a material of its own. Now the GPU is busy trying to draw everything on screen within 16 milliseconds (60FPS). First it draws a bunch of opaque hard surface stuff. Then it needs to do it again because it was all covered in translucent smoke and treeleaves with transmission. On top of that, somebody is trying to simulate thousands of particles on the poor thing.
To keep track of all of this it gets shoved into RAM on what’s essentially a midrange PC from 2013 (PS4). And by all of this I mean the AI and stuff. The graphics goes into the VRAM and that includes all the textures needed. That’s impossible. Therefore we need to use MIPs and Streaming to shove things in and out of VRAM. That means you have to decide, what resolution you can afford to use on that shiny gun that takes up half the screen, compared to the badass rock that you photoscanned in Iceland. The gun will always win as it takes up more of the screen. Guess how much space you get as the dude who adds sparks and smoke in the background…

Archived post by jake rice

i finally had some free time after all this moving craziness and since weve been talking so much about discrete operators, here’s my stab at the laplace-beltrami operator :smiley:

based off this paper: http://www.cs.princeton.edu/courses/archive/fall10/cos526/papers/sorkine05.pdf

hopefully my comments make sense 😮

I really need friends. like wtf am i doing with my weekends :C also theres a little bonus raytracing demo in there cuz i was explaining the basics to my roommate.

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/JR_Laplacian_v001.hip

Petz talks about application of maths concepts

There was some discussion about the best way to skim over maths papers, get familiar with the terminology, and apply that to cg. Petz gave a very thorough and practical breakdown of how to approach this:

but as you already know, personally i think it’s important to get an intuition about all these things before you start implementing it. the equation is not important and neither is the implementation. what is important is a general understanding of what such an operator does and what it means conceptually and geometrically. if i ask you what the laplace is and what it does, for example, and you tell me it’s the divergence of the gradient, then yes that’s true. that’s the definition but no explanation. and if you can’t explain it in your own words you don’t understand it no matter if you finally found an implementation or not. and if you want to learn about all this, i really think it’s important to understand it on a conceptual level first. there’s khan academy, there’s 3blue1brown and many more resources which can teach you this. but you have to start at the beginning and not at the end. that’s why i told you it might be a good idea trying to explain things to someone who does know nothing about math or even 3d because that is a perfect way to get a better understanding for yourself. skimming through dozens of papers and referencing arbitrary math stuff won’t help you. just my 2 cents …
anyway, back to your question:
basic understanding is all! let’s take again the laplace on a surface. conceptually it tells you the difference between a point on this surface and its surrounding. geometrically it can be visualized as sampling an infinitesimal geodesic circle around p. if you average these sample values and calculate the difference to the value at p, you have the laplace. let’s now say these values represent temperature as in the heat equation. the laplace tells you if the temperature of the surrounding is above or below the temperature at p. if it’s above, p is “heating up” and if it’s below, p is “cooling down”. nothing fancy and i’m pretty sure everybody has done something like this once in a sopSolver. now, the problem is that this is how the laplace works in a perfect world on a smooth suface.
in houdini, however, we are working on meshes. more precisely, mainly on quadrilateral or triangular meshes. usually we want to apply all the differential operators and whatnot on triangles since they are easier to work with for a number of reasons. quads are the worst! what you mean as “quads” are regular 2d or 3d grids which are very different to quadrilateral meshes.
well, how do we compute the laplace on a mesh. conceptually it is exactly the same but since the mesh is just a approximation to the surface we can also just compute an approximation to the laplace. again, we could just sample a small circle around p but for triangles this would not make much sense. instead we use the points in the surrounding of p we already have, in other words, we use the neighbouring points.

but here’s the problem: these points are not on a geodesic circle around p. their difference to p and their distribution around p is most likely not regular and therefore we have to compensate for these irregularities by using different weights. “conceptually”, however, you could also try to subdivide the mesh several times and then again sample the subdivided mesh on a small circle around p. that’s not an accurate solution but it helps to understand the concept.(edited)
in regards to matrices i disagree! for studying differential operators you don’t need matrices. of course, they are used all the time because it makes things easier to set up and solve but just if you understand the concept behind it. take keenan cranes “geodesic in heat” paper for example. you already have everything you need but you need to understand how it’s related conceptually.