TLHPro - WIP Thread


#41

Hmm, things get really demanding for such a shading newbie as myself. :shrug:Thomas, are you sure your latest shader should be called ‘EasyMath’ !? Then, what will the ‘AdvancedMath’ shader look like !?:smiley:


#42

Suricate: :slight_smile: Ah, come on, playing chess is much more demanding than this thing :slight_smile:

I once had a 70 year old man as a student. He was the director of a big hotel and wanted to learn using computers. He was highly intelligent but had some kind of block. He had started several courses and books but never got the hang of it. After some initial talk I sensed that all this weird named stuff made him feel stupid since it had no relation to his life.
So I opened an old computer of mine, ripping apart all those parts that sound so weird. A hard disk is a hard disk since it is hard. Superstupid name from very old times when the other option were soft “floppy” disks. I showed him an opened harddisk (“looks like a turntable”), the memory, the cpu, all that stuff and explained to him what they do in real-life words without much tech.
He lost his block after 2 hours of me teaching him and now uses computers no problem.

The same is true for math. Just use inner images that fit you (I often think of that stuff as audio waveforms :wink: ). As soon as you start don’t giving a damn about it sounding complicated, it starts to become easy. Take the “Bessel Functions” for instance. I have never heard of them before in all my life, but my compiler had them listed, so I searched the internet and found that they are quite interesting. They are sine-like waveforms, oscillating with higher initial amplitude and then tend toward zero. One of the pages I found:
http://mathworld.wolfram.com/BesselFunctionoftheFirstKind.html
Do I know exactly how they work? No way. Do they look interesting and useful for texturing? Yes! -> That is all I need :slight_smile:

You see, I know not that much about the deeper dungeons of math, but I approach it quite open minded. I am fascinated by fractals and self-similarity since I saw the first images a long time ago. A lot of very natural beauty can be found there and a lot of stuff that would be rather complicated to get working otherwise is much easier with some creative math.

I can only encourage every artist to drop the “artists don’t do math” attitude and use it like any other brush - without knowing about every molecule of the bristles. Sure it will take a bit of time and brain but it is very rewarding :thumbsup:

Cheers! :bowdown:


#43

OK, I wasn’t completely serious about the math thing. I value my own mathematical/programming skills higher than my artistic skills (which don’t really exist :sad: ), so for me the difficult thing about shading is actually not how they work, but rather how to put all the parts together to get something useful.

Anyway, yesterday I received my copy of Ebert’s ‘Texturing & Modeling - A Procedural Approach’ , so hopefully once I understand the background, I will come up with some interesting shaders myself :).


#44

Suricate: Ha - so I missed the point completely LOL Cool :thumbsup:
I have encountered so many artists that ignore math that I must have grown some kind of allergy against that :slight_smile:

You should absolutely love the book - it is the ultimate in procedurals, very production oriented and to the point. Almost every page contains something to make you sit in front of the computer to try new ideas.

Cheers,


#45

Another WIP image: TLHPro:Wireframe.
I thought a wireframe should be rather easy to do, but it turned out that messiah handles this a bit special internally so it is way more work as expected - most of all since I want to make a tool with more than just the usual options.
To keep you entertained while I crunch through the vector math and the SDK here, one first part is already working:

As you can see, each polygon can have a random color. Even on metanurbed meshes like this one, this uses the original polys which looks more interesting IMO than the small triangles. The second thing you can see is that I have implemented the option to render dots for each meshpoint. Together with the wire itself this should give a nice structure. All these things will be optional so you can also render straight wires or just the dots etc.
The lines and dots have adjustable scale/thickness and allow for smooth falloff.
An alphachannel will also be provided.

More on this on will follow.
If you have more features you want to see, please raise your hands :wink:

Cheers!


#46

After hours of vector wrestling, it finally works as I want it to:

This image is rendered with MonteCarlo GI and Noise Reduction, the only Light is the Environment which is 500% white and shines in through the windows only. The rather spoted look comes from the Noise Reduction which I would have to optimize a bit for a smoother result.

One problem I’ve not yet been able to find a solution for is the projection of the original wire (the subdiv cage) onto the subdivided mesh. Since it actually no longer exists at rendertime, I am not sure if there will be an efficient way of rendering it, although it would be supercool to have the smoothed cage only, or rendered with thicker lines as the subdivs (comparable to ZBrush2s beautiful wire mode).

Hm… digging back into the SDK :bounce:

Cheers!


#47

Cool!:slight_smile:

       feature request time! :D

Can the random tilling be controled to be not so random? i.e. so that similar coloured squares can tend to group together to form larger squary patches of colour to varying degrees… Imagine really pixelated fractal noise, but you can still see the fractal shapes.

This could be really cool for ship hull type stuff. And since the patches are from the actual polys they would look more realistic, like real parts that fit properly around curves etc. Also would be cool if you use the Spots to place rivets along the edges (or in other patterns), that would be just great :slight_smile:

Would be really cool if you could also use the subdivided polys, or a squary type texture that can align to it… for the random stuf that usually goes ona a spaceships hull.

       I just had another idea for something else... :D 

The idea is to randomly clone a bitmap or collection of bitmap textures all over a material. With parameters for Spacing, Rotation, Size and Density… each parameter also has an aditional +/- randomness parameter along with it (to control amount of chaos). Since Each parameter is also an Input, you would be abble to control everything with procedurals or whatever.

       Practical examples: 

      -Throw rubish on street.

Make a texture ligrary of used newspapers, sweet wrappers, crisp packest etc, and with a few clicks spread it around where you want, like in corners, gutters, i.e. where the wind dont blow stuff away…

     -Asteroid, planet surface.

You have perfect crater displacements that you designed in Z-Brush… the only problem is that you need a huge resolution texture to cover a large area… too big in fact… wouldnt it be great to simply be able to ramdomly distribute a few relatively lower res maps over its surface? :slight_smile:

-Landscapes
Distribute rocks, pebbles, bushes...  flowers...

you get the idea :)

Its the kind of thing that can sell for $120 ;):smiley:

  Cheers
  
  Serg

#48

SergO:
The randomization is only one thing I plan.
Since the lines and dots will have smoothing options, you can make them into a bump map for rivets or whatever you like. But for efficiency, I don’t intend to clutter this shader too much - it has tons of options already :slight_smile:
But since there is a color input, it would be easy to use a noise in the way you suggested, so that every poly uses just one sample of the noise. You could also feed in an image and it would get rasterized by the polys…

What I will definitely investigate deeper is generation of UV-maps that you can then feed into a texture node. Maybe I have seen the same add as you, and funny enough, my idea about feathers some days ago was exactly that - building two or three layered UV maps rather than the feather itself :slight_smile:

But for now, try to imagine UV maps as what they are: U is for instance a horizontal gradient from 0 to 1 (black to white) and V is a vertical one (this orientation depends on the software and is rather random). You have millions of options to build gradients, combine several AoN:Grid or Wave layers etc., make an image of random square gradients that are sprayed with painter for instance. Repeat the same strokes with a gradient in the other direction. Now map the images onto an object (with UVmaps if you want :slight_smile: ) and use that as an UV map :slight_smile:

This idea is rather striking I think - tons of possibilities with that already and I yes, I plan to add some “UV generators” to AoN:studio and/or TLHPro.

Thanks a ton for your ideas - that is definitely a concept to investigate!

Cheers!

Thomas Helzle


#49

Hi Thomas,

I was looking at this link http://www.3dluvr.com/rogueldr/tutorials/toon_ink/toon_ink.html and wondered if filters like High Pass, Blur etc could part of TLHPro. Just a thought.

regards
Ikem


#50

I would love to do stuff like that, but 1.) I’ve never done image filters. 2.) the SDK is fully undocumented in this area.
Lyle did an imagefilter example some time ago to help me but it misses exactly the part that I don’t understand yet (working on larger buffer chuncks like it would be needed for a blur f.i.), so I will need to work with him a bit more to get to an initial state from where I can walk alone :slight_smile:

But this would have to be a seperate Toolset I fear, since it opens another can of worms and ideas :bounce:


#51

Thomas,

Understood. I thought this link to the Wavefilter source could also be useful. Thanks for your reply.

regards
Ikem


#52

Forgot the link:) . http://www.wavefilter.com/OpenSourceProject.htm

========


#53

okafor: thanks, I will have a look. But don’t hold your breath yet :slight_smile:

The TLHPro:Wireframe shader has turned out to be a lot of work.
I want to make it as flexible as possible and at least the various methods to render wires and dots are done now:

Rendertime: 53 seconds. No lights, just luminous material.
As you can see, there is some funny stuff going on: You can render Dots and Wires without Smoothing or with Linear, Smooth or XSmooht interpolation. Also you can render them inverted (so you get holes instead of dots etc.) Also you can switch Dots or Wires to the front.
The main mesh here uses smoothed Wires with smooth Dots on top. The UFO on the left uses inverted Wires with Dots behind (so you can only see them in the Wire slots) the spherical thing in the middle uses wires on top of dots, the UFO to the right uses just Dots and the spiral just Wires.

There is a separate Alpha output so it should be easy to make the stuff transparent.
Now I will dive into the different poly-coloring options I have planned.

Cheers! :bowdown:


#54

Looking really good, Thomas! :slight_smile:


#55

Cool work thomas!
Have you planned to make a shader to render Splines?
That would be really cool.


#56

Gary, thank you! :slight_smile:

Labuzz: Thanks. I would love to render 1 and 2 point polys and splines, but as it is, I see no way for that currently in the SDK. This stuff doesn’t exist at rendertime and simply has no surface. The workarounds I can think of (volumetric raymarching or something alike) would be a huge effort so I better stick to the stuff closer at hand for now.

BTW. I forgot to mention that the Wire and the Dots can naturalemente be textured and thickness and smoothing for both can be driven by textures as well. I will try to provide an example later.

Cheers,


#57

talking of zb curves…and spline shader thingys…heh heh.
would it be possible to add noise to the spline rather like zbrush…would be nice…but if linked to another dialogue might not be possible…
love your ideas interesting to see even if i’m not a messiah users…
:thumbsup:


#58

Hi flingster,
yes, that is possible. You can do EVERYTHING to the curves you can dream of. Be it expressions, MoCap, whatever. But since we are talking about a node based system, you can add any kind of shader wherever you want in the flow, so adding noise is the easiest part anyway. :slight_smile:
The only thing missing to have ZBrush-like control is direct access to the internal curves of the main shaders (how diffuse or specular etc. are calculated). I don’t have a way to change that other than to do my own full surface shader which currently is a bit out of reach. Maybe Taron can take over here :slight_smile:
The node based shaderflow opens up so many possibilities, you should absolutely love it if you decide to give messiah a try.

Cheers,

P.S. I have droped Cinema4D 4 years ago for Lightwave and now use messiah:studio mainly…


#59

the whole shader system setup is a major draw imo…it just looks practical and powerful to me.
anyways good reading your ideas and your other shader pack looks like a useful set of tools also…i was meaning access noise like raw in zb on the curve rather than adding a noise node …but i can understand the difficulty with it. with a talented guy like taron around i’m sure you’d have fun developing for M:S.
its all good to see and interesting change for me anyways…:arteest:


#60

I was ill for some days but now I’m back at the TLHPro:Wireframe shader:

No post, just plain out of the renderer.
This time I used the included alpha to make the wire and dots transparent. White wires and very smooth, rather large dots on top give this interesting result.
This object is doublesided - for “front face wireframes” you can simply use single sided objects.
I’m still exploring some options for the polygons so stay tuned :slight_smile:

Cheers :bowdown: