Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Paolo_Giandoso

Pages: [1] 2

The node is available on my Artstation page here
Hi all
This is my first time posting on the "Showcase" part of the forum as I am usually the one pestering people with questions  ;D and I am not by any means a master of the software. I do concept art so I generally use the substances from substance source.
I am also not sure what is the best way to showcase a substance file here on the forum so I am all ears on this issue.
Nevertheless during the lockdown I had some spare time to play with substance designer.
Specifically I kept hearing that the pixel processor is a really powerful node and I wondered what I could do with it and how much could I push it. 
I really love those substances that reproduce building facades. I have seen some amazing work.
One thing I noticed though is that there is not really any easy way to create the main types of arches the 1 centered circular arch), especially when you have to show the voussoirs, or you want a texture (like a wood pattern) to follow its shape.
Therefore I decided to brush my high school trigonometry and give a read to a great book called "Practical geometry for builders and architects".

Math is FUN! :D
The result of this exploration of the pixel processor was my "Arch Generator" node.
This is a node that can generate all the main types and sub-types of arches and that can map an image input along their length and width. It was a fascinating challenge to tackle and the result, while not 100% perfect, still does what is supposed to do in most of the cases.

For the most difficult cases (the true elliptical and parabolic arches) I had a LOT of help from the math geniuses at MathStackExchange and Inigo Quilez which involved getting around a nasty quartic equation which I would not wish it upon even my worst enemy. So a huge thank you guys!

My arch generator can simulate the following types of arches:

Flat Arches
- Tapered
- Parallel

1 Centered Arches
- Semicircular Arches (Roman Arches)
- Segmental Arches
- Horseshoe Arches

2 Centered Arches
- Pointed Lancet Arches
- Pointed Equilateral Arches
- Pointed Drop Arches
- Pointed Segmental Arches

3 centered Arches
- Basket-Handle Arches
- Pseudo 3 centered Arches
This arch is the one which is used in most of the cases to approximate a true elliptic arch in real buildings.

4 Centered Arches
- 4 centered Arches (Tudor Arches)
- Pseudo 4 centered Arches

5 Centered Arches
An alternative to the very popular 3 centered arch. It is a bit close to a true ellipse then the 3 centered arch, but is more complex to build so is less used.
Here the tricky part was that the example in the book "Practical geometry for builders and architects" is actually wrong (I wish I knew it before trying to find what my mistake was for 2 weeks). So I had to find a correct method and it turns out there are not many available on the internet. I am stubborn though, so I found one that works perfectly.

Elliptical Arches
- Elliptical Arches with rays perpendicular to the ellipse
- Elliptical Arches with rays passing through the center
This arch was the most complex one to tackle. There is a reason after all for why builders and architect almost always adopt an approximation like the 3 centered or 5 centered arches. I confess I almost gave up on this one a couple of times. But
luckily for me Inigo Quilez was so kind to help me VERY patiently on how to obtain an approximation of the distance point-to-ellipse (it was like explaining math to a goat, with me being the goat).
It seems a simple thing but trying to solve this problem mathematically always comes down to a horrifying quartic equation (:() which in the best of cases has 1 real solution and 3 that lie on the complex plane. Inigo has a way to approximate the quartic to a cubic. I just had to translate its code to substance designer and then Bob is your uncle (but because of this approximation there are some localized spots of grainy noise in the result when the elliptic arch is getting really close to a circumference I think, nothing unsolvable later on in Substance).
More over, finding the arc length of an ellipse is possible only using the incomplete elliptic integrals of second kind. Something that at the best of my knowledge Substance Designer can not do. Therefore I could not find a way to divide the elliptic arch in equal length voussoirs. Afer a bit of research I discovered that in 2012 Aravind Narayan created an approximation for this calculation which I was actually able to read. I managed to implement it correctly but as expected it breaks down at the sides when the ellipse is really squashed, after all it is just an approximation.
To solve this, I added a parameter that can be used to fine tune the voussoirs size case by case. Of course if someone has a better solution in mind I am all ears.

Parabolic Arches
- Parabolic Arches with rays perpendicular to the parabola
- Parabolic Arches with rays passing through the center
Another difficult arch to create, although not nightmarish as the elliptic one.
For a second time I had to pester poor Inigo for help. I used his code for calculating the distance point-to-parabola, which again (if I remember correctly) approximates a quartic down to a cubic. If anything it was a bit shorter and easier to adapt.
On the other hand, finding the arc length of a parabola is, quite incredibly, very much possible. So dividing the arch in voussoirs of the same length was possible after some attempts.

Ogee Arches
- 3 centered Ogee Arches
- 4 centered Ogee Arches

Reverse Ogee Arches
- 3 centered Reverse Ogee Arches
- 4 centered Reverse Ogee Arches

Multifoil Arches
- With external arch
- Without external arch

Pointed Multifoil Arches
- With external arch
- Without external arch

By default the node generates a basic brick pattern:

But it also works with custom textures.
Here I am plugin a custom height map of a couple ornamental patterns into the node and as you can see it gets remapped along the arches.

I am so curious to see what people will do with it.
My wish would be that if you do some nice facades and gates with the Arch Generator, please share an image here and the substance on substance source so that we can all use it in our concept art :D

In the parameters of a substance, is it possible to create a new Input Parameter which is a Integer1 slider and it is only stepping through odd numbers?
If I select step 2 it only goes through the even numbers, even if my min is set to 3.


Does anyone know if it is possible inside the Pixel Processor (or FX-Map node) to numerically calculate Integrals?
Specifically I was thinking about the Incomplete elliptic integral of the 2nd kind.


Hi all
I have been trying to solve this problem for a while which I need for my project. Is there anyone with a strong passion for math and geometry and with time to spare who is willing to give me a hand? :)

I want to create, using the Pixel Processor, a gradient representing all the Normals to a semi ellipse (origin centered and with the 2 semi-axis parallel to the x and y axis respectively) defined by 2 attributes,  Height (b) and Width (a).
Something like this.

orginated by something like this

The parameter Height is basically the minor semiaxis and Width the major semiaxis multiplied per 2.

Every point in the plane should get the value of the angle formed by the x axis and the one normal to the ellipse that passes for it.

It has been quite complicated for my non mathematical brain and so far I only managed to find partial solutions. I solved it using an FX map (the images below) rotating a very thin line around the ellipse circumference exactly in this way but the result is not as good as a gradient done with the pixel processor, as it creates a stepped effect even with thousands of iterations (ugh) and if I make the line thicker (tried that too) it becomes even more stepped.

I also solved it using a distance node on a regular angular gradient masked with the ellipse alpha. This works too, to a point, but is not perfect either. The result is stepped and wobbly (I think because of the jagged edge of the ellipse shaped mask).

Can anyone help me see the light? I'll be forever thankful :)

Ellipse equation:
      y²/b² + x²/a² = 1
Point P on the Ellipse:
      for every x where -a<xP<a
      yP= b√1-(x²/a²)
Point K where the NORMAL in P to the ellipse meets the x AXIS:
      xK = xP [1-(b/a²)]
      yK = 0
Equation of the normal to the ellipse in P:
      (a²x/xP) - (b²y/yP) = a² - b²
Angle  between the Normal and the X Axis meeting in the point K:
       atan2 (xK- xP,yK- yP,) (in Radians)
       atan2 (xK- xP,yK- yP,)/2Pi  (in Turns)

How can I create these dots that drive the coordinates of the node from the 2DView (the ones indicated by the arrows in the attached picture)?

Hi all. :)
I'm trying to write an equation using the Pixel Processor for an angular gradient with an arbitrary center, therefore I imagine using the atan2 function at some point I guess.
I have as inputs the coordinates of the Center and of 2 points A and B (where B is simply A mirrored along the y axis), and what I want to obtain specifically is a angular gradient that is fully black at point A and white at point B, so some form of precise clamping (the rest of the pie can be black). So far I had no luck with this.
Is there anyone who can offer some guidance?
Thanks a lot!

I noticed several times in different situations that the curve node gives a black output when the image input gets updated (like for instance a input made from a linear gradient connected to a histogram scan, of which I am controlling the position with an exposed attribute).

Moving any of the control points in the curve node fixes the problem, but when the input image gets modified again it starts all over again.
Is there any solution for this? Am I doing something wrong?


 I am trying to create a procedural stone arch shape in my substance. It's a half circle sitting on top of a rectangle.
I'd like to make so that if I scale the rectangle width of height the circle moves with it, always sitting on top, while keeping it's 2:1 proportions.

I'm trying to find out if there is a way to make a shape B sit always on top of another shape A no matter how much you scale A, similarly to a point Constrain in Maya.
I see that the transformation 2d Matrix has 2 values indicating how many time a shape is tiled on the X and Y, and that there is also an offset x and y parameter governing the translation. How can I connect them with an Expression to obtain the effect I'm looking for?

Hi all
I'm trying to understand how to set up the Tile Generator or the Tile Sampler so to create a row of 2 shapes distributed accordingly to this pattern A-B-B-B-B-B-B-B-B..-A
Where Shape A is both in first and last position and in between there are multiple shapes of type B (the number will be controlled by the user, so there could be 3 B shapes as well as 20)

I want to use it to create a stone "Balcony" rail, where the first and last shapes are cubes and the mid shapes a n number of cylindrical shapes. IMM from ZBrush are usually set up in this way.

If someone can give me some suggestions I will be grateful

Is there a way to emulate Maya's Bend Deformer in Substance Designer?

Where you can take a straight shape as an imput (lie a rectangle) and bend it gradually, where 0 is equal to the shape in its base state and 1 is equivalent to the result of the Cartesian to Polar node?

Many thanks

Hi all
I have 2 questions about tiling materials.
I'm creating a plaster wall with a lot of damage and I plan to use the substance for a building with a very specific UV layout in City Engine.
A: Any advice on how to create a material which tiles perfectly but by changing the seed it only modifies the inside part of the tile? So that you can create several iterations that tile perfectly but still are different in the inner part (different plaster damage patterns and bricks being revealed in different points for instance)
B: Any advice on how to make a substance that tiles both with itself and the mirror of itself?
Any guidance will be greatly appreciated.
Many thanks

Hi all
Does the "shape splatter" node completely replaces the "tile sampler", the "tile random"and the "tile generator" nodes?
Is there any reason to use them as of now?
Many thanks

Is it possible to detect if a normal map was exported for OpenGL or DirectX just by the map alone?

Many thanks

Hi all
Is there a way to alter the color of all the bricks that touch a specific shape, like a window or a door or the edges of a building, like in the images below?
Many thanks

Hi all
Can anybody suggest a workflow for bending the bricks pattern in a radial structure when they get close to the windows/door like in the images I attached? I wanted to keep the arches size interactive but I have no idea how to have the bricks layout react to that.
Any suggestion would be greatly appreciated :)

Many thanks

Pages: [1] 2