Author Archives: Asher

Create nice and feasible volumetric cloud in Unreal Engine 4 | UE4之制作高端霸气的干冰体积雾



Making beautiful and feasible volumetric effects has been a trending topic for game development. Inspired by the Gears 5 tech talk and the good ol’ Guerrilla paper on cloudspaces, I decided to do my own take and created this fluffy dry ice fog using Volumetric Fog feature that comes with UE4.

Dry Ice Fog

This is done purely within Volumetric Fog and Volume Material systems, thus requires no low-level coding and supports various lighting feature within UE4.

Continue reading


『有点相关的Unreal Circle演讲』





Continue reading

Made some fully procedural neon wings with #ue4niagara
Twitter Discussion | 中文直播讲解
Anime style death ray and smoke using #ue4niagara
Tried to mimic hand drawn elements with exaggerated physics and distance function. Got some pretty unique looks😈
Twitter Discussion | 中文技术讲座
Procedural wave splash generator made with #UE4Niagara and distance field. Pretty happy about it💓
Twitter Discussion | 中文解析文章
Energy armor shader
Twitter Discussion | 英文PPT
Continue reading

Perforce backup with rsync

First thing to know, I don’t really want to backup the entire perforce database since it’s huge and requires a lot of extra steps. I’m only backing up the latest version in case a doom fire happens to my apartment.
The scheduled backup is run on my p4 server A, in order to run a scheduled backup plan to push my newest project version to server B.

Create client(aka workspace) for the server A itself.

p4 -d `pwd` client -t Vuth_Auri -o Auri_Backup | p4 client -i
p4 client Auri_Backup

Then run a script in crontab.

51 * * * * bash /home/vuth/__backup/


p4 sync
rsync -rtz -e "ssh -p 1111 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -i /home/vuth/.ssh/id_rsa_somekey" /home/vuth/__backup/p4 vuth@

First line get the latest version of your project to the workspace.
Second line runs rsync over a ssh connection to your remote server B.

And that’s it. Notice that this is incremental. You can add –delete to the rsync command to remove garbage from remote server B. I left it for extra safety.