![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Mornin' all.
I've completely re-written my weathered brick macro; shown below is a small
preview of what it can do. I'll post it in a couple of days when I'm happy it's
behaving itself and I've commented the code a bit! I'll put it on the object
collection too.
It's based on the mesh-approximation code I posted a few weeks ago; except now
it makes a single mesh2 object (faster parsing), offers the option of smoothed
triangles (faster rendering) and you can save the mesh2 as an .inc file if you
want (even faster parsing!). Best of all, it can weather any shape that doesn't
occlude itself from its own centre - many building block shapes are therefore
possible.
If anybody has any other suggestions, now is the time!
Bill
Post a reply to this message
Attachments:
Download 'weatheredtest.jpg' (83 KB)
Preview of image 'weatheredtest.jpg'
![weatheredtest.jpg](/povray.binaries.images/attachment/%3Cweb.47f4bc094a7a14e5731f01d10%40news.povray.org%3E/weatheredtest.jpg?ttop=443866&toff=3300&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Bill Pragnell wrote:
> If anybody has any other suggestions, now is the time!
That actually looks very good! Now if you could apply sub-surface
scattering to it...
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Severi Salminen <sev### [at] NOT THISsaunalahti fi invalid> wrote:
> Bill Pragnell wrote:
>
> > If anybody has any other suggestions, now is the time!
>
> That actually looks very good! Now if you could apply sub-surface
> scattering to it...
You can, using media. Each block is a completely closed mesh. They also come
with an inside_vector, so you can use them in CSG too.
*wink*
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Bill Pragnell" <bil### [at] hotmail com> wrote:
> Severi Salminen <sev### [at] NOT THISsaunalahti fi invalid> wrote:
> > Bill Pragnell wrote:
> >
> > > If anybody has any other suggestions, now is the time!
> >
> > That actually looks very good! Now if you could apply sub-surface
> > scattering to it...
>
> You can, using media. Each block is a completely closed mesh. They also come
> with an inside_vector, so you can use them in CSG too.
>
> *wink*
Excellent! A brilliant idea. Thanks Bill--looking forward to that code.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Bill Pragnell" <bil### [at] hotmail com> schreef in bericht
news:web.47f4bc094a7a14e5731f01d10@news.povray.org...
>
> If anybody has any other suggestions, now is the time!
>
Yes! This is certainly an interesting development. I suppose this is random
weathering. Would it be possible to increase the weathering of particular
places of the object, like edges or corners, more than the flat or rounded
faces? Or to make oriented weathering like small vertical incisions down
from the top? Fractures also would be nice of course :-)
Thomas
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Thomas de Groot" <t.d### [at] inter nlDOTnet> wrote:
> Yes! This is certainly an interesting development. I suppose this is random
> weathering. Would it be possible to increase the weathering of particular
> places of the object, like edges or corners, more than the flat or rounded
> faces? Or to make oriented weathering like small vertical incisions down
> from the top? Fractures also would be nice of course :-)
At the moment it is pigment-function weathering, so if you can represent it as a
texture pattern it will work! You are limited only by patience and memory for
high-res meshes.
Vertical incisions could be done as a stretched pigment, and fractures as
crackle. I'll try it out tonight and see if it works. Preferential weathering
at corners and edges is of course more realistic, but I'm not sure how it could
be done. A translated turbulent wood could work on one edge, but not many...
hmm, I shall ponder.
Bill
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> Bill Pragnell wrote:
>
>> If anybody has any other suggestions, now is the time!
>
> That actually looks very good! Now if you could apply sub-surface
> scattering to it...
Or if *you* could...
(does ssRay support meshes yet?)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
Nicolas Alvarez wrote:
>> That actually looks very good! Now if you could apply sub-surface
>> scattering to it...
>
> Or if *you* could...
>
> (does ssRay support meshes yet?)
No I can't...yet :( But that was a nice model which just begs to be made
of marbel/wax/whatever similar.
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"Bill Pragnell" <bil### [at] hotmail com> wrote:
> Vertical incisions could be done as a stretched pigment, and fractures as
> crackle. I'll try it out tonight and see if it works. Preferential weathering
> at corners and edges is of course more realistic, but I'm not sure how it could
> be done. A translated turbulent wood could work on one edge, but not many...
> hmm, I shall ponder.
Here's my thoughts on preferential weathering:
1) Go over the object with a coarse grid and store the radii. Store these in an
array.
2) Go over the array and calculate the second derivative or some other measure
of curvature. Wikipedia should have the Laplacian operator. Just take r
constant.
3) Of course sharp edges will only have a local effect, so filter the data with
a Gaussian function. Just calculate an average of every point with its
neighbors, weighted by a Gaussian distribution. Very simple.
4) Now go back over it with your algorithm. Same type of grid, so if it's finer
just interpolate the curvature onto the fine grid. Areas with zero curvature
get the original function. Areas with high curvature get the full
perturbation.
Think of a cube. The edges contribute to the curvature of all the points around
them so you get smooth faces and weathered edges without any discontinuities.
Just a thought.
- Ricky
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"triple_r" <rre### [at] hotmail com> wrote:
> Here's my thoughts on preferential weathering:
>
> 1) Go over the object with a coarse grid and store the radii. Store these in an
> array.
> 2) Go over the array and calculate the second derivative or some other measure
> of curvature. Wikipedia should have the Laplacian operator. Just take r
> constant.
> 3) Of course sharp edges will only have a local effect, so filter the data with
> a Gaussian function. Just calculate an average of every point with its
> neighbors, weighted by a Gaussian distribution. Very simple.
> 4) Now go back over it with your algorithm. Same type of grid, so if it's finer
> just interpolate the curvature onto the fine grid. Areas with zero curvature
> get the original function. Areas with high curvature get the full
> perturbation.
This is a very good scheme, and fits very well with the current algorithm. I
will play with it over the weekend and see how it goes...
Thanks for the pointer. :)
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |