POV-Ray : Newsgroups : povray.object-collection : bubble update Server Time
2 Jun 2025 05:56:37 EDT (-0400)
  bubble update (Message 1 to 1 of 1)  
From: Cousin Ricky
Subject: bubble update
Date: 22 May 2025 23:18:25
Message: <682fe901@news.povray.org>
I'd like fine bubbles in my glass of Martinelli, and well, look at that!
 There's a convenient bubble generator already in the Object Collection.
 The problem is, in my experiments creating voids in a solid with
Fresnel reflection and media, the only models that rendered comparably
with a simple difference were those with non-textured voids, but
bubble.inc requires a texture.

So I added a macro for non-textured bubbles.

  https://github.com/CousinRicky/POV-bubble

Well... that wasn't the only problem; the original bubble.inc has ...
issues:
 - Most seriously, the bubble randomization is strongly biased towards
   the +x+z sector.
 - Also, despite being self-rated as "fully compliant," none of the
   identifiers are properly prefixed.
 - The bubbles do not conform to a cylinder, but to a box.  (Not a big
   deal)
 - The pseudorandom number stream is simply '1'; I don't know how that
   works.
 - There is *always* a column of bubbles along the y-axis.
 - As Kenneth noted years ago, the bubble size arguments, to put it
   mildly, are non-intuitive, and I have yet to figure out how they
   work.  I also question whether bubbles expand linearly with
   decreasing pressure.
 - The original version is not 1.0, but 3.6, which I take to be a
   misunderstanding of the version field of the upload form.
 - And in the nit-picky department, Mr. Robertson consistently
   misspelled "collumn" with 2 Ls.

In version 2.0:
 - I prefixed the identifiers.
 - I completely replaced the x-z randomization, hoping I didn't break
   anything.  (The original randomization code is an enigma.)
 - I unilaterally upgraded the license to GNU-LGPL 3, which, given the
   wording of the standard Object Collection license statement, is
   permitted by section 13 of the CC-LGPL.
 - I added a demo scene description file.
 - After checking my 'Murican exceptionalism (there's no such thing,
   BTW), consulting a couple of British dictionaries, and verifying that
   there is no variant spelling of "column," I corrected that spelling.
The remaining issues I left alone; I don't want to put a lot of energy
into this module.  I also won't submit an HTML user manual so long as I
haven't figured out the bubble size arguments.

Despite being "optimised for POV-Ray 3.6", the library works perfectly
well in all POV-Ray versions from 3.5 to 3.8.

About the namespace compliance, I did express my concern to Chris
Bartlett about making '3' the default on the upload screen.  His
reasoning was that he wanted to encourage namespace compliance, which is
a goal I 100% agree with.  Unfortunately, the end result of this default
is not actual compliance, but an empty claim of compliance.  The upload
software enforced filename compliance, but it could not verify
identifier compliance.  I don't have a solution to this that doesn't
involve either an AI (and I have trust issues with those) or some
volunteer taking time out from real life to inspect nearly 100 modules.

bubble.inc appears to be a drive-by contribution.  While I very much
appreciate Mr. Robertson's efforts, I have not seen him before or since.
 If you're still around, Charles, can you please explain fBblHeightRngS
and fBblHeightRngE?


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.