creating vfx with unreal engine and houdini -...

Post on 24-Aug-2020

37 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Creating VFXwith Unreal Engine and Houdini

#UE4 | @UNREALENGINE

Mesh ProcessingCompelling visual

Instant gameplay feedback

Flexible animating ability

Good performance

#UE4 | @UNREALENGINE

Animate parameters in Material Editor

#UE4 | @UNREALENGINE

Two challengesAnimate the color and transformation of each triangles separately, using one single mesh

Add noise on top of color and transformation separately

√×

#UE4 | @UNREALENGINE

Generate Low Poly Mesh

#UE4 | @UNREALENGINE

Write vertices data into UV maps

Write position delta into UV1+UV2

#UE4 | @UNREALENGINE

Transformation in Unreal Engine

#UE4 | @UNREALENGINE

TexA * TexB * 2

Noises

#UE4 | @UNREALENGINE

√×

#UE4 | @UNREALENGINE

UV for texturing

#UE4 | @UNREALENGINE

Damage Mask

#UE4 | @UNREALENGINE

Packed Flipbook

#UE4 | @UNREALENGINE

Packed FlipbookLimitations

High res by nature

Can’t be used for anything else

Limited length

Unlit

LDR

#UE4 | @UNREALENGINE

Smoke: 6D / 4Direction Lightmaps

Right

Left Bottom

Top Front

Back

#UE4 | @UNREALENGINE

Smoke: 6D / 4Direction Lightmaps

Right

Left Bottom

Top Front

Back

#UE4 | @UNREALENGINE

Generate 6D Lightmaps

#UE4 | @UNREALENGINE

Generate Normal Map

R: Normal.rG: Normal.g

B: Emission (Temperature)A: Opacity

#UE4 | @UNREALENGINE

Temperature

#UE4 | @UNREALENGINE

#UE4 | @UNREALENGINE

Vertex Animation Texture

#UE4 | @UNREALENGINE

Vertex Animation Texture

20 rows = 20 objects64 columns = 20 frames

Position Rotation

#UE4 | @UNREALENGINE

#UE4 | @UNREALENGINE

RBD Fracture

#UE4 | @UNREALENGINE

#UE4 | @UNREALENGINE

#UE4 | @UNREALENGINE

Volumetric RenderingUEShaderBits-GDC-Pack

Workflows

Optimizations

#UE4 | @UNREALENGINE

Cloud in Houdini

#UE4 | @UNREALENGINE

Using Blocks

#UE4 | @UNREALENGINE

Using Blocks

#UE4 | @UNREALENGINE

Volume Texture

#UE4 | @UNREALENGINE

Volume TextureVolume Texture Preview

#UE4 | @UNREALENGINE

Volumetric Raymarcher

Marching ray

Shadow added to this ray

No shadow added

Bound box

#UE4 | @UNREALENGINE

/UE4_Project/Shaders/RayMarchCompute.usf

#UE4 | @UNREALENGINE

Baking light energyfor(int i=1; i <= MaxSteps; ){ float curDensity = saturate(Density * PseudoVolumeTexture(Tex, TexSampler, func.LocalToUVW(CurPos, Stretch), FramesXY, framesN).x); float3 curLightPosition = CurPos; float shadowDistance = 0; for(int s=0; s<ShadowMaxSteps; s++) {

curLightPosition += lightVectorStep; float d=PseudoVolumeTexture(Tex,TexSampler,

func.LocalToUVW(curLightPosition), XY, N).x; shadowDistance += d / ShadowMaxSteps;

} transmittance *= 1-curDensity; energy += exp(-shadowDistance * ShadowDensity) // Beer's Law * curDensity * transmittance * LightColor;}

for(int s=0; s<ShadowMaxSteps; s++){ curLightPosition += lightVectorStep;

float d=PseudoVolumeTexture(Tex,TexSampler, func.LocalToUVW(curLightPosition), FramesXY, framesN).x;

shadowDistanceSum += d;

if(shadowDistanceSum > shadowDistanceThreshold) break;

}

float shadowDistance = shadowDistanceUnweighted / ShadowMaxSteps;

[..]

return float3(density, shadowDistance, skyLightShadowDistance);

#UE4 | @UNREALENGINE

Baked volumetric lightmap:

R: DensityG: Shadow DistanceB: Sky Light Shadow Distance

#UE4 | @UNREALENGINE

Blutility

#UE4 | @UNREALENGINE

Shell mesh

Low poly shell mesh Custom Stencil as render mask

Custom Depth as entry position

Custom Stencil

#UE4 | @UNREALENGINE

Q&A

Thank you!

asher.zhu@epicgames.com

#UE4 | @UNREALENGINE

Unleashing Houdini for AAA Mobile Games Production Martine A., Beeckmans P., Stroukoff A.

Smoke Lighting and texture re-usability in Skull & Bones Mederic

Creating a Volumetric Ray Marcher Ryan Brucks

All

top related