POV-Ray : Newsgroups : povray.binaries.images : Sample scene ideas : Re: Sample scene ideas Server Time
2 Aug 2021 02:46:27 EDT (-0400)
  Re: Sample scene ideas  
From: Dave Blandston
Date: 4 Jul 2021 03:30:00
Message: <web.60e162981a2f9a2e2636f1af607c1b34@news.povray.org>
"Bald Eagle" <cre### [at] netscapenet> wrote:
> The "e"'s in Persistence look, to my eye, "less solidly bounded" or "less fully
> and completely filled with black" than I ... would like?  Have expected?
> The legs of the "n" seem particularly bad.  They're ... mottled.
> Same with the "r", "m" ...
> the "p" in povray, the "g" in org.

Here is a possible source of the mottling according to my limited knowledge of
how anti-aliasing works: At the edges of the characters what you get is a
percentage of the texture of the object in question and a percentage of the
background. For example, if the edge of an object lies right in the middle of a
pixel then the color of that pixel will be computed as 50% the texture of the
object and 50% the texture of the background. Since you're using a mottled
texture for the floor, that mottling is being factored into the black texture of
the text where anti-aliasing is being applied to the text edges. To see if this
is the problem just use a solid color for the floor and see if that eliminates
the mottling.

As far as making the text bolder, here is an imperfect solution. (I'm guessing
you're willing to make a slight compromise based on your proposed scale
solution.) This macro will create an object consisting of multiple copies of the
original object offset a little, so the new object will be slightly larger than
the original and will have rounded corners. For your purposes I suggest starting
out with a very thin text object (.0001 for example). If you want to, this can
be used to create a different-colored border around the text. Here's the macro:

#macro CreateBorder_Outer (ObjectToBorder_, Radius_, DeltaTheta_)

   #declare BorderedObject = object {
      union {
         #local Theta = 0;
         #while (Theta < 360)
            object {ObjectToBorder_ translate <cos (radians (Theta)) * Radius_,
sin (radians (Theta)) * Radius_, 0>}
            #local Theta = Theta + DeltaTheta_;
         #end //#while
      } //union
   } //object

#end //macro CreateBorder_Outer

Example:

#local Something = object {text {ttf "Times.ttf" "Hi there." .0001, 0}}

CreateBorder_Outer (Something, .02, 10)

#local SomethingNew = object {
   union {
      object {BorderedObject texture {pigment {color Yellow}}}
      object {Something translate -.0001 * z texture {pigment {color Red}}}
   } //union
} //object

object {SomethingNew}

Just an idea...


Kind regards,
Dave Blandston
Suggested motto: "With POV-Ray anything is possible, but nothing is easy"


Post a reply to this message

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