- "CRACK-FREE POINT-NORMAL TRIANGLES USING ADJACENT EDGE NORMALS"
- "My Tessellation has Cracks" GDC 2012
- "Tessellation on Any Budget" GDC2011
- "Adaptive Hardware-acceleration Tessellation" Frostbite
- "Direct3D 11 In-Depth Tutorial: Tessellation" GDC 2010
- "Advanced Visual Effects with DirectX 11: Tessellation in Call of Duty: Ghosts" GDC 2014
- "D3D11 Tessellation" NVidia GDC 2009
- "Direct3D 11 Tessellation: More Detail, Less Storage" GDC 2010
- "Tessellation Performance" GDC 2010
- "Instanced Tessellation in DirectX10" GDC 2008
- "LostPlanet2 DirectX11 Features"
GPU Pro
- GPU Pro1 "As Simple as Possible Tessellation for Interactive Applications", Tamy Boubekeur
- GPU Pro2 "Terrain and Ocean Rendering with Hardware Tessellation"
- GPU Pro 3 "Vertex Shader Tesselation, Holger Gruen"
- GPU Pro 4 "GPU Terrain Subdivision and Tessellation, Benjamin Mistal"
- GPU Pro 6 "Bandwidth Efficient Procedural Meshes in the GPU via Tessellation by Gustavo Bastos Nunes and João Lucas Guberman Raza"
- GPU Pro 7 "Hardware Tessellation and Performance"
Notes of Houdini Fracture
Good
Houdini Procedural Destruction Workflow Tutorial, jcmpmjmp
- 拘束に名前をつける
- SOP Solver を使って, 一定上の力とトルクで拘束を無効にする
- 内部の解像度を上げている
- 高解像度と低解像度をマッピングさせている
- shelf の debris を利用
Applied Houdini - Introduction to rigid body simulation! Steven Knipping
- https://vimeo.com/185820853
- UserList : https://vimeo.com/user10927826
- Packed Geometry について
- Packed Geometry と剛体シミュレーションについて
- 剛体シミュレーション Bullet は Convex を使う
- 行列を自分で代入して動かす
- ボロノイ Fracture の仕組み
- Volume VOP をした後に Scatter する
- ボロノイのかけらに対して for でループする
Houdini fracture
- Houdini 公式
- Shelf で RBD Object -> MakeBreakable で Voronoi Fracture Configure Object を作る
- Shelf の Model Shatter -> RBD Object -> RBD Fractured Object -> RBD Glued の例
ART DIRECTING YOUR DESTRUCTION IN HOUDINI, fifty-50.uk
- ART DIRECTING YOUR DESTRUCTION | SERIES #01
- 豚の通常ポリゴンの破砕の結果を, ハイポリゴンメッシュに送る
- 破砕の断面にノイズを加えてギザギザにする
- SERIES #02 GLUE NETWORK
- 豚の破砕のときの GLUE を少しずつ取り除く
- ART DIRECTING YOUR DESTRUCTION // SERIES #03 // DEBRIS AND PYRO FX
- 豚の破砕のときに Debris や煙を発生
VMT 009 - HOUDINI - How To Control Fracture Simulations
- shatter
- RBD Fractured Object
- multi solver
- 特定の部分だけ active にする
Boolean or not Boolean: Fun with Fracturing | Steven Knipping | Houdini HIVE at SIGGRAPH 2017
- (A)
- Boolean Union で豚と球を結合
- Boolean Shatter で Mountain 入りの平面で切る
- (B)
- 細かい破片も作る
- 決めた断面を中心に, 点を複製してノイズを加えた断面を作る
- 断面の数が少ないと, 断面がばれやすい
- (C)
- 豚付近の平面の断面に色をつける
- そこに Scatter で点を置いて, そこにノイズ入りの球を置く
- それを Boolean Shatter の要素として使う
- (D)
- 豚を球で近似して, それに Mountain を適用した岩で Shatter する
- 脆いものが爆発で壊れたような 細かいぎざぎざができる, 重い
[Houdini] Font Crumble with Smoke and Debris Shards
- フォント @ の形から煙や Debris を出す
- https://vimeo.com/146794995
TRANSFER HIGH RES GEO TO LOW RES SIM
- Voronoi Fracture Points を使って, 部分的に細かく割る
- Voronoi Fracture Node をコピーして, High の方は Interior を設定する
- High の方に結果は DOP Import を使って反映させる
Realtime VFX for Games (Mike Lyndon) / Houdini ILLUME Webinar
- Gears of War 4 での地形の破壊の例
- https://vimeo.com/193820978
Normal
Houdini - Unity - Rigid Body Fracturing Pipeline, Jona Marklund
- Fatman という頭が大きい人型モデルを壊す例
- 頂点カラーで density に色をつけて, 破片のサイズを調整
Procedural Fracturing in Houdini, Duane Falconer
- ボックスと交差する球周りを細かく割る例
- Cookie ノードの Intersect 後に, FogVolume -> Scatter -> Voronoi Fracture
- https://vimeo.com/30006381
Houdini RBD RnD - Destruction Overview Technologies
- いろんな割り方を短く 1:30 で紹介
- 具体的な手順の説明は少ない
Not good
Houdini to Unity. Extract Objects Asset. Paul Geraskin
- 球を破壊する例
- Shelf Tool の Shatter, Glued Packed Object を利用
Houdini Tutorial - Fracture Objects, Justin Braun
- 古い, 直方体を Shelf の Shatter で壊す例
Houdini Tutorial - Rigid Body Destruction Creation, FX HIVE
- 古い, 柱を壊す例
- Edge Cusp でハードエッジ化, 破壊時にパーティクルを発生させる
Advanced fracture Tutoria
- Fracture というライブラリの使用例
- https://vimeo.com/186459606
Destruction in Houdini - Part 001/003 FX HIVE
- 古い, 柱を球で破壊する例
- Debris も出ている
Notes of Houdini
GDC2017
- GDC 2017 Houdini Presentations
UE4 vertex animation
- Vertex Animation GDC Project Overview
- https://vimeo.com/207832662
- project file : dropbox.com/s/7ihdawwj2a03jr8/GDC2017_VertexAnimationTextures.zip?dl=0
- vimeo : Luiz Kruel
- SideFX GDC 2017 booth presentation: Volume to mesh workflows used in Battlefield 1
Houdini Engine for Unity
- Unity Plugin
- Houdini Engine for Unity
- Unity プラグイン クイックスタート
Notes of flipbook shaders
- Frame Blending with Motion Vectors
- Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編 p54
- Tutorial: Making Flipbook Shader with Unity and Amplify Shader Editor
Notes of 2d Fluid simluation
- candycat1992/2DFluidSim
- UnityFluid2D
- orochi663
- Cellular Automaton 2D Liquid Simulator for Unity
- UnityRDiffusion
- GPU Fluid
- Cocuy: The Fluid Simulator
the Little Grashopper
- Simple Fluid Simulation
- 3D Eulerian Grid
- Noise-Based Particles, Part I
- Noise-Based Particles, Part II
- Thick Glass with Floating-Point Textures
- Deep Opacity Maps
Particle
- KvantStream
- Kvant/Spray v2
Notes of Vector Fields
Notes of procedural
noise by iq
- dynamic clouds
- Advanced value noise
- Texture repitation
- filtering procedural textures
- directional derivative
- celluar fx
- pop corn images
- Elevated
SIGGRAPH 2015
- The Real-time Volumetric Cloudscapes of Horizon: Zero Dawn
- A Novel Sampling Algorithm for Fast and Stable Real-Time Volume Rendering
Notes of billboards in Unity
Script
Notes of VXAO
- Advanced Ambient Occlusion Methods for Modern Games
- VXAO: Voxel Ambient Occlusion
- NVIDIA VXGI : DYNAMIC GLOBAL ILLUMINATION FOR GAMES
Notes of Noise in Unity
- Noise Shader Library for Unity
- Perlin Noise Function for Unity
- Noise
Notes of postprocess with stencil in Unity
- Take advantage of Stencil buffer in Post Process
- Leveraging Stencil buffers for masked post effects
Unity 5.6.X のグラフィックスの雑記
OnRenderImage(src,dst) で送られる引数
ポストエフェクトでデフォルトのデプスバッファで EarlyZ は使えるか ?
- Forward : OK
- Deferred : NG??
ポストエフェクトでデフォルトのデプスバッファでステンシルテストは使えるか?
- Forward : NG?
- Deferred : NG?
- 自分で RenderTexture (Color + Depth24bit)を用意してそれを使った場合は大丈夫
Forward の CameraDepthNormalTexture について
- 中身は頂点シェーダで計算した法線
- 従って, 法線マップが適用されていないのもの
// UnityCG.cginc #define COMPUTE_VIEW_NORMAL normalize(mul((float3x3)UNITY_MATRIX_IT_MV, v.normal)) // AmbientOccusion.cginc // https://github.com/Unity-Technologies/PostProcessing/blob/v1/PostProcessing/Resources/Shaders/AmbientOcclusion.cginc sampler2D _CameraDepthNormalsTexture; // Depth/normal sampling functions float SampleDepth(float2 uv) { #if defined(SOURCE_GBUFFER) || defined(SOURCE_DEPTH) float d = LinearizeDepth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, uv)); #else float4 cdn = tex2D(_CameraDepthNormalsTexture, uv); float d = DecodeFloatRG(cdn.zw); #endif return d * _ProjectionParams.z + CheckBounds(uv, d); } float3 SampleNormal(float2 uv) { #if defined(SOURCE_GBUFFER) float3 norm = tex2D(_CameraGBufferTexture2, uv).xyz; norm = norm * 2 - any(norm); // gets (0,0,0) when norm == 0 norm = mul((float3x3)unity_WorldToCamera, norm); #if defined(VALIDATE_NORMALS) norm = normalize(norm); #endif return norm; #else float4 cdn = tex2D(_CameraDepthNormalsTexture, uv); return DecodeViewNormalStereo(cdn) * float3(1.0, 1.0, -1.0); #endif } float SampleDepthNormal(float2 uv, out float3 normal) { #if defined(SOURCE_GBUFFER) || defined(SOURCE_DEPTH) normal = SampleNormal(uv); return SampleDepth(uv); #else float4 cdn = tex2D(_CameraDepthNormalsTexture, uv); normal = DecodeViewNormalStereo(cdn) * float3(1.0, 1.0, -1.0); float d = DecodeFloatRG(cdn.zw); return d * _ProjectionParams.z + CheckBounds(uv, d); #endif }
// http://unlicense.org/ float4 cdn = tex2D( _CameraDepthNormalsTexture, uv ); float3 view_normal = DecodeViewNormalStereo( cdn ) * float3( 1.0f, 1.0f, - 1.0f ); float4 world_normal4 = mul( unity_CameraToWorld, float4( view_normal, 0.0 ) ); float3 world_normal = normalize( world_normal4.rgb ); float abs_view_pos_z = DecodeFloatRG( cdn.zw ); float view_pos_z = ( - abs_view_pos_z );
Notes of UE4 Skeletalmesh
Notes of C#
入門
ラムダ式
The global shadrer cache file is missing.
- https://forums.unrealengine.com/development-discussion/c-gameplay-programming/2105-globalshadercache-pc3d_sm5-bin-is-missing
- https://forums.unrealengine.com/development-discussion/c-gameplay-programming/2105-globalshadercache-pc3d_sm5-bin-is-missing/page2?1993-GlobalShaderCache-PC3D_SM5-bin-is-missing=
- https://answers.unrealengine.com/questions/360001/shipping-configuration-cannot-be-launched-even-wit.html
- "Cook Content For Windows",
- The blank target is actually looking for cooked content, and so that probably explains the error message. Are you able to build in "DebugGame Editor" and then open the project from within Visual Studio (with Debug > Start New Instance)?
- However I can get around this issue by switching my project to a source version (github) by: right click on the *.uproject file > Switch Unreal Engine version... > Choose the location where I keep the full source.
- Development だと Cooked 後の VS Development 起動で OK
- Shipping/Test だと VS からの 非 Editor 起動できない??
Skeletal mesh vs static mesh performance
- https://answers.unrealengine.com/questions/300859/skeletal-mesh-vs-static-mesh-performance.html
- StaticMesh
- デプスに書き込むときに、位置だけを参照するインデックスバッファを作って使うので、頂点コストが減る
- 不透明マテリアルのときは、デプスプレパスとデプスシャドウのマージセクション?を作る。ドローコールと三角形が減る
- デプスプリパスでは staticmesh のように位置座標を別のバッファとしてもてるときだけ PositonOnly で書き込める
- 同じステートのものについてバッチでドローできる, Skeltamesh はソートやフィルタのステートがない
- Skeltamesh はボーンウェイトについて 1 個だけでも, 4 個の計算をする。(r.GPUSkin.Limit2BoneInfluences があるけど全体に影響)
- RTDF はデプスの負荷 + レイマーチの負荷。遠景は CSM の半分の負荷。