![](/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) |
This is a sdl generated mesh object. The idea was to transition from a
flat-sided body to a round cross-sectioned neck. ( Variations on that
transition are the design of many ink bottles.)
The macro must be fed x-y coordinates to describe the vertical profile
of the bottle in the form of an array. This array is submitted to Cris
Colefax's spline macro to produce a spline for the profile. The
horizontal cross-sections are produced from a macro based on a few
parameters like number of sides, size of bevel and tension. This macro
also outputs an array of points. The diameter of each cross-section is
derived from the profile spline. The cross-section array is used to
produce and store a cross-section spline. A final macro walks these
cross-section splines and generates the mesh triangles.
At present the macro will not stand alone, the code must be tweeked for
each bottle to accomplish the transition from a sided scrossection to a
rounded cross-section.
Post a reply to this message
Attachments:
Download 'inkbottle.0009.jpg' (66 KB)
Preview of image 'inkbottle.0009.jpg'
![inkbottle.0009.jpg](/povray.binaries.images/attachment/%3C47ad7fb5%40news.povray.org%3E/inkbottle.0009.jpg?ttop=443866&toff=3400&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) |
How about ink inside? :)
Is it at all possible (even if extremely hard) to make it so users set
the *volume* of ink, and it automatically figures out its "height", even
when the bottle is rotated? I would surely have no idea how to even
start coding the needed calculations...
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:
> How about ink inside? :)
>
> Is it at all possible (even if extremely hard) to make it so users set
> the *volume* of ink, and it automatically figures out its "height", even
> when the bottle is rotated? I would surely have no idea how to even
> start coding the needed calculations...
Neither would I.
Ink bottles also can have labels which is another issue I am struggling
with. Though it should be possible to generate some uv coordinates for
simple cases.
But there are graver issues with the usability of the macro which makes
me question its overall usefulness. Afterall this bottle could be
modelled and exported from a mesh modeller in 15 minutes, tops. For
instance, the positioning and rate of the transition from a 'sided'
cross section to round cross section of the neck is presently
interdependent with things like the density of the mesh.
Here is another bottle, and some ink in the earlier one
Post a reply to this message
Attachments:
Download 'inkbottle.0016.jpg' (36 KB)
Preview of image 'inkbottle.0016.jpg'
![inkbottle.0016.jpg](/povray.binaries.images/attachment/%3C47ae93e1%40news.povray.org%3E/inkbottle.0016.jpg?ttop=443866&toff=3400&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) |
Yo,
Just a quick guess, but as far as maintaining same level as if gravity, even
with rotation:
Have a solid section of "ink" and a solid bottle equal in size to the
interior of the bottle, and just use csg intersection textured to be "ink"..
For volume adjustment, obviously one would simply raise or lower the solid
"ink", which would then have intersection performed on it.
While possessing no fluid dynamics, I think the effect would be sufficient.
Dunno about meshes, but with "solid" pov primitives, it should work...
Now using media or blobs or something to accurately simulate fluid dynamics,
like if you shook the thing up....well someone else can figure that one
out...lol!!
Ian
"Jim Charter" <jrc### [at] msn com> wrote in message
news:47ae93e1@news.povray.org...
> Nicolas Alvarez wrote:
>> How about ink inside? :)
>>
>> Is it at all possible (even if extremely hard) to make it so users set
>> the *volume* of ink, and it automatically figures out its "height", even
>> when the bottle is rotated? I would surely have no idea how to even
>> start coding the needed calculations...
> Neither would I.
>
> Ink bottles also can have labels which is another issue I am struggling
> with. Though it should be possible to generate some uv coordinates for
> simple cases.
>
> But there are graver issues with the usability of the macro which makes
> me question its overall usefulness. Afterall this bottle could be
> modelled and exported from a mesh modeller in 15 minutes, tops. For
> instance, the positioning and rate of the transition from a 'sided'
> cross section to round cross section of the neck is presently
> interdependent with things like the density of the mesh.
>
> Here is another bottle, and some ink in the earlier one
>
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) |
"Jim Charter" <jrc### [at] msn com> wrote in message
news:47ae93e1@news.povray.org...
>
> Ink bottles also can have labels which is another issue I am struggling
> with. Though it should be possible to generate some uv coordinates for
> simple cases.
>
Hi Jim,
I've been working on a label generator over the last few days. The objects I
sent in for the 'office supplies' subject both needed labels, so I took the
code I wrote for them to make a generic labelling system. As of this morning
it generates either flat or cylindrical labels using layers of pigment to
incorporate combinations of POV-Ray objects and image maps.
By coincidence, yesterday I was thinking about how to do labels for rounded
boxes/superellipsoids though I haven't coded that up yet. I was thinking of
using the width, the depth and the roundness of the corners to control the
shape of a label. The label width would control how far around the sides of
the container the label stretched. Any ideas for anything that might make it
more useful to you?
Regards,
Chris B.
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) |
[GDS|Entropy] wrote:
> Yo,
Yo
>
> Dunno about meshes, but with "solid" pov primitives, it should work...
>
Yes, in fact the bottles *are* meshes and that is roughly how I did it
in the picture. I used a plane for the intersection but a box would
probably have been more efficient. Mesh will do CSG if an inside_vector
is defined. But the larger question was about the possibility of
keeping the level of the ink physically accurate for a constant volume.
The ink bottle portrayed is a bottle for 'tusche' which is a heavy
gloppy sort of ink, like India ink, and it does tend to dry and cake
onto the inside of the bottle. Because I am controlling the generation
of the mesh in a loop anyway it should be possible to apply a procedural
texture to just the interior part of the bottle and get something close.
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) |
Chris B wrote:
>
>
> Hi Jim,
>
> I've been working on a label generator over the last few days. The objects I
> sent in for the 'office supplies' subject both needed labels, so I took the
> code I wrote for them to make a generic labelling system. As of this morning
> it generates either flat or cylindrical labels using layers of pigment to
> incorporate combinations of POV-Ray objects and image maps.
>
> By coincidence, yesterday I was thinking about how to do labels for rounded
> boxes/superellipsoids though I haven't coded that up yet. I was thinking of
> using the width, the depth and the roundness of the corners to control the
> shape of a label. The label width would control how far around the sides of
> the container the label stretched. Any ideas for anything that might make it
> more useful to you?
>
It might very well be! Assuming you are using bi-cubic patches, that
was one approach I was also considering. The 'cross sections' of the
bottles are modelled with splines using the colefax spline files. It
certainly would be easy to generate 16 points along the bottle's surface
from those spline definitions. But the labels on the ink bottles are
often continuous around the outside which might be trickier to do if
such total accuracy were needed, that is why I was also considering
generating uv vectors along with the mesh triangles, at least for a
certain portion of the bottle. But either way my attitude was that I
would provide the means such that the artist could change the label, in
the simplest case, by just providing an image_map. Your system still
might integrate well in that case too.
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) |
The normals seem a touch overdone, but otherwise this is practically
perfect. :-)
--
William Tracy
afi### [at] gmail com -- wtr### [at] calpoly edu
Running "beautifully fast" on modern hardware is somewhere between "I've
never been to jail" and "I shower daily" on the list of human
accomplishment.
-- phi### [at] philwelch net, posting on Slashdot
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) |
"Jim Charter" <jrc### [at] msn com> wrote in message
news:47aef6c3$1@news.povray.org...
> Chris B wrote:
>> I've been working on a label generator over the last few days.
>> ... snip ...
>> By coincidence, yesterday I was thinking about how to do labels for
>> rounded boxes/superellipsoids though I haven't coded that up yet. I was
>> thinking of using the width, the depth and the roundness of the corners
>> to control the shape of a label. The label width would control how far
>> around the sides of the container the label stretched. Any ideas for
>> anything that might make it more useful to you?
>>
> It might very well be! Assuming you are using bi-cubic patches, that was
> one approach I was also considering.
At the moment I've used CSG, but the SDL is split into two parts and
modularised to make it easy to extend:
1. There's a label design file, in which you can render the label design
laid out flat. The design is built up of as many layers as you need. Each
layer can contain image maps, POV-Ray pigments, object pigments, text blocks
etc.
2. There's a series of macros, each of which creates a label object of a
particular shape, based on standardised variables to control the size, then
wraps the texture around onto its surface. The Width variable defines how
far around the object the label extends and therefore defines whether it's
continuous or whether there's a gap round the back.
For a new shape or new texture mapping technique (e.g. bi-cubic patches or
uv mapping), a new macro can be added. By using standardised variables to
describe the main attributes it makes it easy for a label designed for one
object shape to be wrapped around a different shape.
I did a rounded box label shape macro yesterday. Once I've wrapped a texture
onto it I'll post an image. Do you have a label design for the square
ink-bottle that I could maybe use as an example - a scan, a sketch or a
description that I could interpret?
Regards,
Chris B.
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) |
"Chris B" <nom### [at] nomail com> wrote in message
news:47b0295f$1@news.povray.org...
>
> I did a rounded box label shape macro yesterday. Once I've wrapped a
> texture
> onto it I'll post an image.
>
Here's what I've got so far. Virtually everything is configurable, including
all of the text and the shapes and colours used. The radius of the corners
and the lengths of the sides can all be set and the label will adjust itself
to fit. The width of the label can be the same as the circumference of the
bottle or less, in which case it'll wrap round the bottle for as far as
necessary.
The first image shows the label as it renders in design mode.
The second shows a label doing a complete circuit of a rounded box and
meeting at the back.
The third shows one that wraps round as far as the back corners.
Regards,
Chris B.
Post a reply to this message
Attachments:
Download 'InkBottleLabel2.jpg' (15 KB)
Download 'InkBottleLabel.jpg' (14 KB)
Download 'InkBottleLabelDesign.jpg' (18 KB)
Preview of image 'InkBottleLabel2.jpg'
![InkBottleLabel2.jpg](/povray.binaries.images/attachment/%3C47b0e480%40news.povray.org%3E/InkBottleLabel2.jpg?ttop=443866&toff=3400&preview=1)
Preview of image 'InkBottleLabel.jpg'
![InkBottleLabel.jpg](/povray.binaries.images/attachment/%3C47b0e480%40news.povray.org%3E/InkBottleLabel.jpg?ttop=443866&toff=3400&preview=1)
Preview of image 'InkBottleLabelDesign.jpg'
![InkBottleLabelDesign.jpg](/povray.binaries.images/attachment/%3C47b0e480%40news.povray.org%3E/InkBottleLabelDesign.jpg?ttop=443866&toff=3400&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |