Community Reputation

3 Followers

About MJW

Profile Information

I know essentially nothing about lightmap textures , but it seems to me that a program that creates lightmap textures has to be aware of the relationship between the objects' UV coordinates and vertex coordinates. That doesn't seem easy to do with PDN, where images are just collections of pixels. I think you'd have more luck using a 3D shading program. (If you phrase your question as more "Here's what I have; here's what I want to do with it," you're likely to get a more informative response.)

A bit more complex, but I think you could create the path in PreRender. That would require you dispose of it in an OnDispose routine instead of relying on a "using" block.
EDIT: I haven't tried this yet, so I don't know if there might be problems accessing path from multiple threads.

Also, in the Visual Studio project properties, as the last item in the list of frameworks, there's an entry "Install other frameworks..." As I recall, it just opens in your browser about the same thing that toe_head2001 linked to. I also recall it was kind of confusing, because there are two things I could do, and I wasn't sure which was the right one to install the framework.

@dipstick, I really like the reflecting hearts, but you might want to try the Texture Smoother. It does a pretty good job of smoothing out the waterlines caused by the low resolution of gray-scale height maps.

I agree that using selections can result in jaggy edges. Often there's an alternative method that works better. What are you trying to do by selecting the transparent background? Do you have some specific task in mind? If you want to erase the corresponding area in another layer, try BoltBait's Paste Alpha plugin.

I'm kind of confused. Is that an actual fix? I tried it with one on my SOTW entries, and it worked, but somehow I'm nervous about it. If it's an actual fix, and not something Photobucket will shut down once they realize it's there, I'll update all my past image links. I don't know if it's some hidden loophole, or something Photobucket purposely added to calm down anti-Photobucket feelings. Both seem unlikely, but I can't think of a third alternative. Does anyone know what's going on?

Those are some very impressive umbrellas, @Pixey, @MadJik, and @lynxster4! I wish I could have entered, but I didn't have enough time to even come close to the quality of winning entries. Thanks to @toe_head2001 for hosting.

I've released version 2.2.0, which has a new mapping mode called Reflection Map (Equirectangular). It should be useful for producing such things as chrome text. (Reflection mapping is also referred to as "environment mapping.") It's a feature I've intended to add for a long time, and finally gotten around to. Though it doesn't replace the other reflection mapping modes, it's probably the most generally useful.
Equirectangular images are 360° spherical images that represent the image in equally-spaced latitude-longitude format. There are many available on the Internet, including those on the Equirectangular Flickr group.
Some things to note (which I'll add to as I think of them):
- Though image scaling is supported, values other than the default value of 1 may not produce useful results.
- Likewise, though the normal Image mode is Clipboard, the other modes are supported, and may sometimes be useful when the image scale factor is less than 1.
- Although equirectangular projections are normally twice as wide as they are tall, all aspect ratios are treated as full sphere maps.
- The offset controls are used to rotate the image sphere about the X and Y axes, while the Rotation control rotates it about the Z axis. The Z rotation is applied last, so it will rotate the sphere that has been rotated about Y and tilted about X.
- Standard reflection mapping considers the sphere to be at infinity, so that for a directional eye vector, only the surface normal matters, not the position of the point. The Reflection Map (Equirectangular) mapping mode allows the sphere radius to be changed, so the reflection varies, even for a flat surface. A Mapping Displacement of 0 specifies an infinite sphere. Increasing the displacement decreases the sphere size. If the sphere is so small that the height-map points are outside the sphere, they will be transparent. The value at which this occurs depends on the canvas size (for obvious reasons).
- Standard equirectangular projections have the following characteristics: They're twice as wide as they are high, since the width represents 360° and the height represents 180°; the top row of pixels and the bottom row of pixels are constant, since the top row represents the sphere's topmost point, and the bottom row represents the sphere's bottommost point; the left edge (nearly) matches the right edge, since the image wraps around.
- For many situations, images that are not actual equirectangular projections will produce useful results. However, using, for instance, an image that doesn't match at the left and right edge may limit the positions that the sphere can be rotated to without the seam becoming visible.
- Often, it's more effective to use mostly ambient lighting, by using a high value of ambient light, and by ether reducing the directional light intensity, or increasing the specularity so that that the directional light mostly contributes highlights.
- I chose to use equirectangular projections because they're widely available, quite intuitive, and make reasonably efficient use of the image space.

The method of making rounded text with the Texture Rounder is very clever and effective, but I want to mention another method that I've often used. This is from a comment I made on the Texture Scaler thread (so, not surprisingly, uses the Texture Scaler plugin).
The Don't Scale Transparent Pixels option allows the range of a height-map object to be changed without changing the height of the transparent background (which will usually be zero). Combined with Pre-Scale Heights to Entire Range and Set Transparent-Pixel Heights to Zero Before Scaling, it forces the height of transparent pixels to zero, while moving the height-map object so that the minimum height of the object pixels is zero. This can be quite useful for producing height maps by blurring shapes.
The basic idea is:
Draw white text on a black background.
Copy the image to the clipboard (after, perhaps, a one or two pixel blur to soften the edge).
Blur the image. The type and amount of burring depend on the desired result.
Use BoltBait's Paste Alpha to restore the original object shape and make the background transparent.
Run Texture Scaler with the first three options enabled. Perhaps also use a bit of feathering.
In many cases, it will be useful to use the Texture Smoother to smooth the resulting height map.
Another way:
Draw a white shape on a black background. For example, a filled rectangle.
Perhaps blur a pixel or two to soften the edge.
Duplicate the layer.
Set the top layer's Blend Mode to Multiply.
Blur the top layer. The type and amount of burring depend on the desired result.
Merge the layers.
Run Texture Scaler with the all options set, and a Feather Range of 0. (This erases the black areas)
Rerun Texture Scaler. (This rescales the non-transparent pixels.)
In many cases, it will be useful to use the Texture Smoother to smooth the resulting height map.
Another approach that seems to work well is to use the first method, but do the Texture Smoothing before doing the Paste Alpha.
There are plenty of possible variations, especially tricks to make the outer edge smoother.
For blurs, I usually use Gaussian Blurs or Motion Blurs, such as two Motion Blurs at right angles.

I'd be surprised if there's enough signal within the noise that it can be recovered, but another plugin to try is the Laplacian pyramid filter.
EDIT: Also, it's JPEG image, which is far from ideal if you want to recover barely-visible details. To compress images, JPEG is designed to throw out extraneous details, which may well include what you're hoping to recover.