Drawing animation for VR in 360

Long time no post – must be the number one starting sentence in blogs :)

Small animation test I did:

If you cannot see video directly (not logged in Facebook?) try looking here: http://littlstar.com/videos/3c44d6ae
So here I will share my techniques and mistakes – what i would do differently next time.


So I decided to try if it is possible to draw animation for VR. That means in equirectangular projection. Probably that’s incorrect statement – one could draw images on cube faces or other projections…

Still we are most familiar with equirectangular projection and cube faces would require to mach images in 6 separate pictures. Though this could be an approach if there are small objects to be drawn and they would remain quite stationary in frame. In this case we would get less distortion and it would be probably easier to draw.


First its always nice to have at least some sort of scenario, something for audience to care about. And that’s a first thing i will make sure i have for my next “film”. There was a plan in a beginning to add forth scene – the abstract one… but that was before i learned about problems of camera movement and other things about confusing people and making them vomit…

So the plan was, after our “viewer” drops “dead” in water he starts “hallucinating” and animation is shown in this manner:

deleted scene…

This gif file turned out not very representative of idea and of how i did it,… oh well .. still want to experiment with more “hardcore” / abstract imagery but .. well.. might be some other time. Mind you I have never seen my work on dk2 or even cardboard….


So I made most of my animation in 3D and rendered sort of a flat looking image that i afterwards processed a bit to make it look less “3D” like. Also I used cell shader to render outlines of my animated models and printed these that they would be hardly visible. That was for rotoscoping.

hardly visible for print
hardly visible for print
flat shading
flat shading


So in planing stage i have counted that i ll need to draw close to 1000 frames. And then there was a question how to scan it all? So i asked around in print shops and it was around 100 EU just for scanning. So i decided to try and buy a scanner for myself. There where not many options that i found in close by shops. Ebay was out of question cos sending costs would be prohibiting to me. So i found this weird brand i have never heard of – BROTHER. There was also a cheep RICO option and i don’t remember why i went for brother instead… might be cos it was A3 instead of A4.. BROTHER MFC – j6520DW has a automatic page feeder (around 30 pg) and can scan or print A3 pages. The scanner / printer is definitely a “budget” thing but it did the job. If you google this model you will find quite mixed comments about it. One has to be careful loading pages they turn out not as straight as i would like them to be, some seem to rotate couple of degrees and basically its impossible to use scanned images unless you stabilize the motion..


Ok so i am using automatic feeder which means each page is positioned not perfectly while scanning and i do get quite a bit of wobbling. First images I printed for drawing where a4 and covered most of pages width like this:

placement for print
placement for print

So not only that each frame was in slightly different position of previous page but in some cases i would lose parts of scanned image. So next time I will not print so close to borders. Even if pages will be rotating and moving I will not lose image. The green lines show point placement for image stabilization in After Effects.

Parts of image gone...
Parts of image gone…


For all or most of background images I drew around 7 frames only. Then I used script or expression in After Effects that would randomly load these 7 frames for required duration.

fr = 12; // frame rate;

numFrames = 8;


seg = Math.floor(time*fr);

f = Math.floor(random(numFrames));

for (i = 0; i < seg; i++)

f = (f + Math.floor(random(1,numFrames)))%numFrames;



The sound was another problem. I wanted to experiment with binaural sound… but i got so fed up with this animation that in the end i just added some sound effects from free sound library.. just not to be a silent film. So again sound changes your experience so much.. if there is a chance ill get a professional sound person next time…

What did I miss?


Noise, Perlin noise and esthetics of random

Here it is, a title which, as usual is quite confusing. First of all here we will not discus mathematical nature of various random number generators (which is also an interesting topic). And we will focus on esthetics of random. Random… what? Well anything random I guess.

So as I see it there are two ways of making things esthetically more interesting*. One would be depicting more. Say we have a plain wall, we would want to see 5 layers of paint which where applied, and in some parts the paint is cracked and we see bricks, also we see a spider web and so on. This is one approach, and it is a best way to achieve visual detail, and make our frame more interesting. But it takes time to construct both wall, and spiders and dirt and so on. Another approach is to increase detail by adding random elements, which by themselves do not depict anything in particular, but in certain context might be perceived as intended detail.

plian white wall
plian white wall
rich white wall
rich white wall

Again noise is just noise. But if we use gray noise placed above depicted fireplace, viewer will think its a smoke. If we add same gray pattern of noise on plain wall, viewer might interpret it as a dirt on a wall. This way is much faster. And this is what we will talk about.

First of all lets see a simple Perlin noise pattern, and a multiple scaled Perlin noise patterns. (image A)

perlin noise, taken from wikipedia
perlin noise, taken from wikipedia

And in picture “B” we see variations of Perlin noise (here I am not certain if it is actually a perlin noise, probably not, corrections are welcome) which intend to depict something more precise then abstract noise itself.

cedural maps "Celular, Dent, Perlin marble, marble", 3ds max, image B
procedural maps “Celular, Dent, Perlin marble, marble”, 3ds max, image B

So a simple comparison could sound like this.
Perlin Noise. A boring plane noise which is rather abstract and doesn’t depict anything in particular. Which is also a good thing as an element to construct more sophisticated noise like effects.
Now there is nothing better then Scaled multiple Perlin noises. It has different size elements (see image A) and is almost a god in cg world (no?). And variations of Perlin noise, which could be modified to depict wood and other interesting patterns. But what is the difference between Perlin noise – and multiple scaled Perlin noises? Well, I would say that its all same plane noise, but it goes towards depiction, towards sophistication, towards no randomness.

So desired noise for image enhancement, should look like intended detail rather then just random detail. What I want to say, its not the detail itself that is a valuable a detail, its a detail that has something behind it. And its quite tricky to make automatic algorithms that would not only add detail such as Perlin noise but a noise of a sort that somehow depicts something, without a necessity to actually take care of what it depicts. And for that I think we need to look in to such procedural maps as “planet” in 3d s max. Its is gone in new max versions.. (why?). Also in some older posts I suggested to build materials, or procedural maps that would “feel”the geometry they are applied upon. Especially the last link talks about an extra detail on edges of mesh.

One example from real world. Some days ago I was walking in a street and saw a window. It was dirty and covered in paint. But the paint was not running down, but upwards. Now first thought would be that it is an unneeded detail, which , if it where a CG shot, not a real life would make no sense and would complicate understanding of an image or a shot. And then I found a possible reason for paint running “upside down” Most likely the glass was already dirty, and a person who made window used dirty glass without directing it in any particular way from point of view of paint on glass. What I am trying to say, is that observer will always try to find explanations, and be it correct or incorrect, one always might find reason behind something. And here is the question: If it would have been a CG shot, would it be a bad shot, because if one notices this it makes them uncomfortable, ads an unnecessary level of thinking and so on. Or is it a good shot, because rather then having a clean boring “plain”glass we have some visual details…

So I guess the point of this post is to make a note, that we do want detail, but not just any detail, we want it to be “in the context”. It has to depict something, somehow. And if it actually doesn’t depict anything in particular, we should strive that a viewer would find its meaning on his own. Its a tricky task, and I guess.


*Here I have to make a note and remind you that I am by no means implying that more complicated is better, more detailed is better, visually overwhelming is a desire. But In some cases it might be the case (or some of these statements at least). Just imagine a white wall, which is shot in a close up, and all u see is just a wall. It covers hole screen. Now say a wall is white. So we can imagine a situation where we have a whole image containing only of pixels of rgb value 255,255,255. If you would not know beforehand that it is a wall, wouldn’t you say, its just blank white screen? So in some cases more detail is better. And hole today’s post is dedicated only to this situation, where more detail is better.


I have remembered this blog article of mine sis I found this cool interview with Ken Perlin himself! One nice idea he has is: if something is too complicated, add another dimention to it. What does that mean? Listen to his interview at fxpodcast here:

link to fxpostcast with Ken Perlin about noise, aesthetics and perlin noise too!

another article here: link

3d multicellular vs Hand drawing in ink :)

So as usual it was quite a long time sins I posted something here. Unfortunately, even though I have some drafts, I just cant sit down and finish them. Therefore I decided to go for an easy post. Well its like writing an software review or movie review. (meaning a reflection of something rather then a creation, and here I am simplifying things a bit, there is surely complicated and “heavy”movie reviews as well as shallow “creation” stories.) Anyways this is gonna be a rather shallow story. But oh well..

So as all of us, weak human beings, from time too time we do stuff which we are not supposed to be doing. Sometimes its something very wrong, but more then often its just something that we are not suppose to be doing cos we are suppose to be doing something else. And most of the time we are watching movies, TV reading a stupid book, or don’t know.. Hundreds of things to do, in order to avoid something you actually must do. It could be anything. So as a member of this human race, I am too doing stupid things. But lucky us (humans) from time to time, on rear occasions, these stupid things lead to something. And be it not something great, or of huge value, its still sort of positive. Well the judgment here can be varying. Still.  As it happens, one of these times I was procrastinating I happen to be inspired by my own drawing in ink, and tried to do something of that sort in 3d. Ah finally you will say, he talks about 3d, its about time. So here it is a small rather dumb project. Who knows, when ‘the stars are right’ :) , one day I might actually do something good out of this. But for now we have:

A. A hand drawing of a… don’t know plankton, bug, molecule, microscopical being, alien, virus of a sorts?

ink version of a bug
ink version of a bug

B. We have a wireframe of recreation of itt in 3d. And then, we use some materials with falloff in opacity Chanel, we add some depth of field in our mental ray rendering engine, we invert an image, and here is what we have:

wireframe of a bug
wireframe of a bug

C. a final output:

final render of a bugg
final render of a bugg

Again, an imaginary tool for photoshop

Lately I was working with some textures. I had a model, and for texture work in zbruch and photoshop,
I had to use unwrap uwv. I guess that’s a term in 3d max.
Not sure how you call it in other software, but I guess name shuld be similar as well as function.
So i selected parts of my 3d model, corrected seems, and used pelt mapping in most cases.
Again actually it does not mater. the main idea is that at the end i had something like this:
So when it comes to zbrush naturally you don’t see any seems where two texture blocks connect.
You work without knowing that they exist. (more or less)
But when it comes to photoshop, You yourself must make sure that all pixels corresponding to other texture
blocks pixels (at the edges of texture blocks) Are either same or very similar color, so that when you use
your texture back in your 3d program, no one would see where texture blocks connect.

But how on earth do you do that?
how do you manipulate image so that each edge pixel in two separated texture blocks would be the same?
I am sure there must be solutions, or work arounds. I would be very happy to hear how you do it.

But I was thinking, what if we would have a plug in for photoshop ( gimp? corel photo paint? …? )
that would help doing that?

the idea is to create two “guidelines” for both texture blocks, they could resemble curves in photoshop.
So first here is an image to better understand what do i talk about:


so if, lets say i use brush tool and draw in one block of texture, and at some point brush moves out
of that texture block, crossing one seem, and  “magically” it appears in other texture block, crossing second seem.
it would be like working with tilling textures. or better example, like this OLD game “snakes”, where u have to
eat stuff, and as a result you get longer, but you can not bump in to yourself. but you can hit the right side of
your screen, and you will end up in left side of screen. The idea is the same.
You hit green seem line from one side, and you appear crossing also read seem in other texture block.

OK and now lets imagine a bit more complex situation.
well might be its not more complex, just for a sake of this example.


so if, lets say i use brush tool and draw in one block of texture, and at some point brush moves out
of that texture block, crossing one seem, and  “magically” it appears in other texture block, crossing second seem.
it would be like working with tilling textures. or better example, like this OLD game “snakes”, where u have to
eat stuff, and as a result you get longer, but you can not bump in to yourself. but you can hit the right side of
your screen, and you will end up in left side of screen. The idea is the same.
You hit green seem line from one side, and you appear crossing also read seem in other texture block.

OK and now lets imagine a bit more complex situation.
well might be its not more complex, just for a sake of this example.

so we see a situation where same edge is shared in 3 texture blocks, and how the same edge represented in
each block has different length and shape.

free transform
OK my representation of “free transform” tool is not very accurate, but i hope its good enough for understanding.
I guess “Free transform” tool is quite limited, therefore you would be able to control it only on one texture block,
and other one (on next texture blog) would be automatically generated…  or we write free transform tool too :)
Now in a case of brush (look at second image) it might at some points appear in 3 different locations on screen, on 3
different texture blocks.

well, any one needs an idea for computer graphicks degree work? That could be it :)

If such tool wuld exist…
the author could go further, and write another plugin for max/maya/xsi to eport seems….. or?
it would take years to define all seems in photoshop for more coplex objects..

ok, some ink was spilt around

so i gues we all tryed some ink. in real life or in cg.

and there are realy good engines and algorithms to render ink. but….

ok, so what i think about 3d max ink material is : its cool, but…

it kind of lacks controls. and ofcourse sometimes it does not do what u expext it to do.

ofcourse second complain is not that easy to change or corect, we will leave that to years of developement.

but first part is some new features, and we can talk about that.

Ok, so lets look at photoshop, if we go to draw whith brushes, we have hundreds of diferent brushes. like squere, dray brush wet brush, whatever… just diferent stuff. why cant we have it in 3d max? well or maya or xsi, doesnt matter.

so in my personal opinion what u nead to create a paint brush, is:

first is we nead to know where to apply outlines, and that we can find by having somthing like a alpha chanel or so, what i mean is imagine we have a scene whith only one sohere in it. so wehen we render it we could have one pass where we have all back as black pixels and foreground as white. there fore we can easily find edges. now i know there is much more to it. not only each object in scene has to have outlines, but also some lines inside object, i dono how one goes about it, but i am sute anyone who wrote somth like ink material renderer, knows this stuff. anyway we are not after that.

so lets say we already have a line created by this contrast analisis. now to apply photoshop or hand made brush we nead a direction. here we have some options. we can just randomly select dyrection and apply brush along our contrast line to that direction.

we can have it by analise normaly rendered image. lets say in some part shadows are very hard or color of object is dark so we have higher contrast in spcifick dyrction. that coud be a way to decide a direction.

but there are more interesting ways.

so lets read this document:


ok, here they use vector fields to describe how mesh topology should be done in a model.

its kind of complicated, but using this stuff they take models which has absolutely random, ugly mesh topology and remeshes them to have very nice edge loops and quad polygons. very nice. but cant we use same vector fields to get dyrections of brush strokes?

i am sure some research is already done on thios, i seem to remember reading such article, it had examples whithj egg, and rotating camera around it, pls, someone give me a link to add here….

but . lets say we know where our brush must go and, which dyrection, now we just chek the lenght of line and our bruch will act acording. what i mean here is when u use brush, first u usualy have a drop, and start whith fat line, which goes finer and finer till the all the ink in brush is used and nothing more is drawen.

we all know how this works in photoshop using dynamick brushes. lots of presets and options to explore.. why not in 3d?

so lets analise what exactly we have in brush stroke?

brush anatomy

1 a start of brush, kind of a peddle.

2. normal line which goes smaller in whith.

3. lines brake up cos of crapy brush.

brush anatomy1

and the wet paint folows garvity.. and drips.

the secont picture is very time related.

anyways thuse could be some of ideas fr writing new ink renderer / material / shader.

well its not exactly a photorealistick rendering but now we are all so interested in non photo real renderings, so this is some ideas around it.

ps. what hapends when camera, or object moves fast? well we all have seen manga drawings and anime films whit thuse motion lines. now if we take a pedle of ink and move it very fast it would do something wouldnt it?

i mean… well lets have a look at picture:

cam mooves
well again, anone interesten in writing it?

i am interested in further consulting. or feadback, if anyone understud what i am talking about.

and again, noone knows how exactly it would look, but i hope it would look very interesting, good (insert further braging here..)


pss. some more links tosee:

http://visgraph.cse.ust.hk/MoXi/   (link no longer works :((()


you can also wisit my portfolio.
dont like english? u can (try) readig it in lithuanian or anny other language here! alternative, has no lithuanian :(

raytracing the wind, and wind shadows.

sounds cool, eh, the title :)

ok, so as u can imagine from the name of post this one gona be mesy crazy and ununderstandable. well i kind of got this idea while semi sleaping, so what kind of clearity can u expect from such a state of mind?

anyways. i was always interested in wind, as an effect in 3d, or cg. Now we all know this 2d effect in photoshop, not sure it might be actualy named wind. well its similar to directional blur. it shifts, pushes pixels, only some pixels i guess, to the directio of wind. yes, just had a look its nder stilize effects in photoshop.

anyways, so i was thinking could we do somthing similar in 3d? to alow wind actualy to push pixels?

and here is what i come up whith.

1. the wind in 3d software is usualy just a direction and strenght, i meaqn it has such parameters. well i am not to familiar whith it, so corret me if i am wrong.

(look at the picture “A”).

So if we would have just strenght and direction, then our wind would be simple photoshop efect, and no nead to bather thinking how to implement it.

therefore we would nead the whind in a scene to be somehow distributed in more interesting fasion. now here are some thoughts. 1. we are all familier whith whind icon, the one which see as an object in our scene, the one we rotate to change direction of winnd, the one we animate.

well, even icon has its position in 3d space, so we can have then distance from pixel we are curiently rendering to wind icon in scene. acording to this distance we can decide upon strenght. meaning, closer pixel (i shuld say peace of geometry which is “seen” from a pixel in viewing plane) is to wind source, or icon, stronger the effect will be.

now another thing is, sometimes when u hide behind something wind doesnt blow as strong. how can we do that?

why not to employ our raytracing engine? if we would think that wind icon is a light source, we could render a shadow. (using secondary ray, which is pointed towards light source, in this case towards wind picture “B”) so we would have a shadow of a wind in a way.

and we shuld not apply this wind effect on a pixels which are under wind shadow.

now a nex step would be, ….

ok there is no sharp distinction where the wind “is” and “is not ” in real life, we have all gray areas in betwean.

how do we do that in our raytraced wind shadow?

why dont we drow some vectors, to see how strong pixels would be affected (lenght of vector) and direction. so lets have a look at picture “c” (well part of the picture which is labeled “c”)

raytracing wind

and now in a right side of picture we have thuse black numbers 1-4.

lets imagine 1 and 2 are pixels which shuld be affected by our crazy wind effect.

while 3 and 4 are pixels in a wind shadow, so we will not apply any effects on them. but we whant to get rid of sharp edge…

why dont we make pixels in shadow have some sort of influence radius. lets look at red circles around pixels 3 and 4.

we see that pixel’s nr. 3 circle touches pixel nr 1. so what we will do is we ll draw a vector from pixel who has whind effect, this would be pixel nr1 towards pixel in a wind shadow, nr.3. normaly that would be a straight line, but we will take in to acount wind direction and draw somethig like in right top corner of our ilustration. the black curved arow. now acording to thuse wectors we will finaly apply pixel shifting looking at our vectors which will guide the directions.

i know its all crazy, but why not. might be somthing interesting could be done thinking about what i wrote,

i know i wqas not wery clear when i talk about 2d pixel as a end value in rendered picture, when its pixel in viewing plane, when its a point in 3d space, which is being seen from viewing plane and so on.

but no nead to be all critical here, its only food for thoughts, not something to write a phd on :)

what u think?

again, any voluntears to write a renderer?

you can also wisit my portfolio.
dont like english? u can (try) readig it in lithuanian or anny other language here! alternative, has no lithuanian :(