The more you know the less you need to say
Ramblings of
Alex Lovett
RSS
Twitter
Tumblr
Youtube
LinkedIn

Navigation:

Up a Level - error_log - Experiments - Store

Documents:

Unity5 - Reality_2.0 - Math_Art - Lilly - Drawing - GameDesign - Inspiration - XFactor - Valideus - Food - WheelReview - GKN - Lumen - WishList - RoundTree - Painting_with_Light - House - Website - Fridge
Tags: - C4D - Vray
Show comments

Just playing back in C4D with Vray, haven't touched this in years. I miss the relative simplicity and sanity of this work now

:-D



I just love Vray, once you know all the things you shouldn't use and set all the defaults up to something sane anyway, which only takes a few years of tinkering to figure out -_-

3D would be super easy for almost anyone if the defaults were even close to useful. Even HDR images for sky are often all incorrectly 'normalized' with the sun being relatively too dim to cast shadows properly. So I wanted to try again at lighting a render as simply as possible, No messing with render quality settings shadow bias's and stochastic samples, none of that hideous rubbish of the past. Just make the scene the correct size, the camera the correct f-stop exposure, and throw in a sky with a bright sun. Simple as it should be. Brute force + Light cache so there is practically not settings or tweaking, and hit render, done. A Vray does it wonderfully, pretty fast too ( at least for a sill )



Now to tax it, throw a stained glass window in front, can it cope... yes it can, wonderfully, go Vray! it gets a bit noisier, but not as noisy as I expected. I think in 3Ds Max Vray you can turn on optimizations for glass to do with bidirectional ray tracing or something too.



Not the worlds most impressive render or scene. But it cheered me up to see me get something simple rendered realistically in about 3 minutes, without having to fiddle of hours like the old days.

I do miss it, I learned so much about 3D rendering and light/materials and never really got to make anything with it. I spent so long fiddling and learning, actually making things got neglected!

Ah and I just found about Light Portals, which should make it even betterer, fancy that.

Rainbow!



Screwed something up and added speccy noise, but otherwise looks pretty good!


And then I stumbled on this old website again, the old Church of the Flying Spaghetti Monster, I should totally put my religion as Pastafarian on the next form I fill out



"I welcome you to join me in silent reverence to His Savoriness, the Noodle in the Sky, our Saucy Master, The Flying Spaghetti Monster. May you be forever touched by His Noodly Appendage."

From here:


But I digress, revisiting some old renders with Vray that I am now yet again bored of fiddling with, first with post effects and second without




Just been playing about with Octane Render on Mac with C4D, wow amazing really. Very fast if you have a good card, scary fast, definitely need to look into it more, they seem like a good solid company too.

How many CEO's of Octane can sit on a Stanford bunny.. why as many as wants to:

And realtime cloud based, HTML WEBGL 3D tool!?!?!? for the web:

They are adding Vray Cloud support soon too

And some plastic, cus why not! Couldn't be bothered to get a better scratch map, but you get the idea, 4 hours well spent... thanks to fumbling around trying to figure out why it wasn't working, to find Vray has reflection cutout on by default *shakes fist at sky* why are all the default settings so WRONG!!!







Show comments for 'Vray Old Friend'
Tags: - Programming - Games - Unity - Shadowood
Show comments

Coming Soon...


Show comments for 'Epoch'
Tags: - Programming - Games - Unity - Shadowood
Show comments

Well better late than never, I have been working on my first game, first real project in Unity and this is the first time I have bothered to write about any of it!

What it looks like right now, countless hours bring you a very exciting logo and some cubes and particles

:-P

:


That and eveeeeerything behind the scenes you cannot see or arguably even care about... took... forever! seriously.. for---ever - your mind could not even accept how long even if it could comprehend it.

If you wish to make an apple pie from scratch, you must first invent the universe -- Carl Sagan

I don't even want to contemplate what the work would be like without Unity making a good start on that Apple Pie for me

If I have seen further it is only by standing on the shoulders of giants -- Isaac Newton

I am writing a few articles for things in the past on some of the hurdles so save me explaining the ordeal here, go read those and you should get the picture

---

Totally easy to follow nesting of loops.. *hangs head*




Show comments for 'Six Impossible Things'
Tags: - Programming - Games - Unity - Shadowood
Show comments


Post Effects in Unity are fun! / Screenspace effects / Image effects / Post Processing etc

Though they often run very very slow on iOS devices if at all, but if some care is taken by reducing the resolution, you can still do some nice things

I edited the built in effects for vignette to well correctly do vignette for a start as vignette does not just mean make the edges blacker, you are simulating a drop in exposure essentially and unless you use HDR this means it will look like mud in a game just uniform ally blackening the edges despite how bright or none bright the contents is. And here Contrast adjustments are your friend so by darkening and increasing the contrast as it gets cooer to the edge you better approximate the 'look' that vignetting has, bright objects stay bright and dark objects get even darker. *feels quite smug for probably being the only person on Earth to have bothered to notice this was wrong and fix it* subtle stuff but it makes it looks nicer, and more photographic:



I also removed the aberration effect from the shader when set to 0 as this kills the performance on iOS. And reducing the resolution for the blur so it runs faster on mobile. End result I am still pulling 50 fps on iPad 4 with vignette with edge blur color correction 4x anti aliasing but only if It's at max 1024x768 ( none retina ) forget doing post effects at retina res just yet

:-)



Oh and theres some more fun trying to find where Unity forces the resolution in Xcode source files

:-)



Clue it is in 'AppleController.mm' under 'QueryTargetResolution' if you want exact control, just note changing the resolution mid game only works going down res, up res crashes ( known bug in Unity )

And note you can now change framerate from the default lowly 30 with:
Application.targetFrameRate = 60;

Though you will drain more battery

More post effect fun times:







Editor Graphical Bugs:






Show comments for 'Post Effects'
Tags: - Programming - Games - Unity - Shadowood
Show comments

Fluid Simulation, ah where to even begin

I'm busy working on a game and wanted to add some nice subtle touches. To have particles in the air or embers emitted from destroyed 'items' and have them not just dart about the screen as is per usual with particles. But to interact with each other, with objects in the scene that are moving in and with the users touch input on the screen, thus bringing them to life a bit. Air is basically a fluid so essentially it is a fluid dynamics problem. One I had the naivety to think I could solve simply

:-)



How hard can it be to just have particles move about and push each other around.

Surely someone has already done this and I can just use that.

Now first off there are various kinds of approach to fluids sims, all with trade offs. Some good at 2D bad at 3D, some good at gases and turbulent spirals but bad at contiguous bodies of water e.g. with surface tension. The approach for modeling say a bucket filling up with water versus a room full of hot smoke are very different.

For Unity I have found a couple of libraries

FluidSim by Philip Heckinger ( Pheck )
What appears to be a good, well implemented version, best I have found for Unity for 2D fluids

A 2D CPU or GPU accelerated implementation using 'Eulerian' method of dividing a space into cells with velocity/pressure vectors

I inquired with the creator and he had added 'vorticity confinement' but for his uses decided to remove it for performance it added little
And has not added 'viscous diffusion'
--

Very similar to the implementation here by 'Scrawk' done in Unity3D

However this implementation is incomplete and I am too stupid to work out how to augment it ;-D


it is incomplete as it is itself based upon an implementation by Philip Rideout who'm decided to leave out Viscous Diffusion and Vorticity Confinement as he did not require them ( though fluidsim above also omits these things )

The Little Grasshopper - Simple Fluid Simulation ( written in C )



Which is itself based upon the work here in GPU Gems 1 by Mark J. Harris:



And some have found inspiration from the work of Jonathon M. Cohen of NVIDIA Research here:



And in this research here by Jos Stam for Alias
Real-Time Fluid Dynamics for Games

A couple of people I found used Jos Stams work

This here which seems broken by VIC20

And work by NoiseCrime ( whom wants to keep the efforts to himself "part of a bigger project and as such i'm unable to release the code at present" )

Another article by Mick West
Practical Fluid Mechanics



And then theres the very impressive work of Grant Kot:

Who has produced a realtime sim combined various methods and the only one I have seen that tackles surface tensions and manages to merge a good gas/swirly swim with solid water like properties too. Check GFlow HD for iPad ( free ) though I didn't fancy attempting to port this to C# and all the performance implication that might have.

And then there is Fluvio for Unity3D by Thinksquirrel Software

Which is a 3D particle based approach using what he claims is SPH ( Smoothed Particle Hydrodynamics ) but I have failed to see any evidence of a fluid sim at work here. It just looks awful. I'm possibly wrong and it is amazing but the demos and videos show it doing a poor job at pretty much everything. Understandably doing 3D fluids in Unity is going to be tricky and theres nothing else on the store that does what Fluvio does... but I'm left unimpressed by the demos and how coarse they are, they barely exhibit any of the behavior I would define a fluid by. More like a series of balls attached together with weak springs... and It's not exactly 'cheap' either. Maybe I am missing something! as the free demo only lets you use 100 particles kinda making it impossible to test It's metal.

And quite annoyingly the guys at Unity seem to have solved exactly what I need with a SPH Fluid solution for Shuriken particles here:
Look for video here 'Fluid Solver'
( what an awful website Unity! )

---

Ok I purchased the Unity Fluidsim and have started trying to make sense of it and bend it to my will!:



Got it running fairly well on the phone thankfully, I only need it low res ( unlike the high res in the video ) and it is working fine with all the post effects and a ton of particles, which is surprising for a phone! ( iPhone 5 )



Main problem now is getting it to interact with touch input, how to get it to push the fluid around. It has build in collision detection of sorts but it is totally rubbish so I will likely have to do it all myself... that is once I figure out how this is all setup internally *starts prodding and poking the code looking very confused

With no description and no code and no sign of any further work on it, just a video showing how cool it is ;-P *raises fist to the sky*

This is way more involving than I had hoped for, I just wanted to be able to touch the fluid and swish it about... simple I thought. I just spent most of the day writing multi touch code to detect angle and velocity to even get started on the problem. The way this 'Fluidsim' works is a bit nuts in terms of updating various properties per frame, it just polls at regular intervals even if nothing has changed, fair enough, but I want it to be a bit more performant than that and update only when something has changed and only draw the thing that has changed not loop thru all objects process each one. Nightmare.

Next problem how to make a tap push fluid around it in every direction. Seems so simple but yet again, nope hard as a pixel/point can only have one direction at a time naturally. So to have it move in all you need a circular shape with each pixels direction set to say from the center of the circle, not too complicated that is if you are used to writing shader code. Dealing with colors and directions as numbers/vectors hurts my brain immeasurably. Well figured that out and it was ridiculously simple in the end once my brain wrapped around it and of course first solved it in an over clever complicated and highly convoluted manner.



Here is a video of multi touch input running on my desktop computer:




And now after many days banging my head against the proverbial wall, here are particles suspended in fluid *drum roll*
now just to make it look nice, like dust glinting in sunbeams, and yes it is lagging and a bit jittery but I'm working on that


Never in my life have I struggled so much, long days with nothing to show for them, mindless trying different combination of things. But I prevail victorious, my stoicism knows no bounds.
Turns out the difficulty I was having was two fold, one a bug in Unity itself which was fixed 2 days before I started working on this!!!! but I had neglected to update. And secondly a continuing bug that prevents ReadPixels to work when Anti Aliasing is enabled on iOS. Then it was only am after of mere... 10's of hours to get it working properly ;-P

Now I need to work on the performance, using object pools and trying to augment the existing particle system instead of lots of floating quads each with expensive transforms and a heavy 3D physics engine attached to each particle.

I'm curious as to if an image based approach also running on the GPU would have been easier and likely more performant... tempting.. even if it does largely negate the work I have done

Projects like TC Particles using DirectX 11 looks amazing :


Though $100 and more importantly limited to Windows machines not good, $350 for the source code

It says it has a fallback to Unity built in Shuriken particles with no DX11, though who knows what benefits and drawbacks this brings.

Watch this video and be amazed ( presuming you are in the year range 2013-2016 otherwise you will be moderately amused at how basic it is )



--

Just got it working with Unity built in Particle System ( Shuriken ) which has sped it up immensely as expected so now handles many thousands more particles with ease. And used the Unity Profiler to track down and remove a bunch of GC crippling code that was stuffing the garbage collecting with megabytes a second of 'new' operations, so easy to slip up and do that

:-)

I love you built in Profiler!



Ah balls... I just very cleverly made some 'optimized' code then realized due to a limitation out of my hands ( Shuriken ) it intact makes it slower, then I make some more very clever code for combining touch movements and running them at a custom regular interval instead of instantly / irregularly and often too often.... and then I realize the premise of the whole optimization was based on an incorrect assumption and have in fact worked really hard at undoing someone else's very clever optimisations because I assumed it was being stupid. FAIL

In any case despite most of my efforts being counter productive, the fluid sim is running even faster now

:-P



And after finding several ways of making it slower, I now know ( hopefully ) how to make it even fasterer! except now I'm shattered and being attacked by wasps ( they enter the window after a certain time en masse to harass and make me goto bed )


Show comments for 'Fluidity'
You have reached the end of this page - But there's more! Click Older for more
Subscribe to my News Feed.. or screw you then!
Success is going from failure to failure without a loss of enthusiasm
Copyright © 2006 - 2024 - Alex Lovett
Site and content designed, built and massaged by
Alex Lovett
( HD6 / HeliosDoubleSix )
contact me by email:
Page Rendered in: 0.029 seconds, like a boss