MJW

Members
  • Content count

    1,289
  • Joined

  • Last visited

  • Days Won

    29

Everything posted by MJW

  1. I have a request: true perspective. As I recall, the current version does some sort of bilinear approximation.
  2. See next comment, where I quoted the comment I'm responding to.
  3. This is a beta version of a perspective transformation plugin. Unfortunately, I can't seem to post images using my flickr account (I get the message, "You are not allowed to use that image extension on this community.") The plugin uses four double-vector controls to place the transformation control points. Due to CodeLab restrictions, the double vectors are all initially at the center of the window, and have to be moved to reasonable positions to produce a picture. It's not too hard to do, but it's very inelegant. Eventually, I'll convert it a Visual Studio project and fix that problem. There are also scale and offset controls to adjust the image size and position. If the scales and offsets are in their default positions, the image is perspectively mapped into the quadrilateral formed by the control points, surrounded by transparency. The image isn't clipped to the quadrilateral, it's just that there's nothing to display. If the scaling factor is greater than 1, the image will extend beyond the control-point quadrilateral. If the control points are moved to invalid positions, such as a non-convex quadrilateral, the entire image will be transparent. The effect is in the Effects>Distort menu. EDIT: New version uploaded 2/8/2015. There are three changes. First, I replaced the X and Y Scale controls with Scale and XY Proportion controls. Second, I added optional anti-aliasing using supersampling. Third, I used floats instead of doubles for almost all the calculations. The source code is also updated. One thing that might be noticed is that if the checkerboard or grid is displayed with the control points in the corners, so the image is undistorted, then the image will appear to be a bit darker when anti-aliasing is enabled. This is an (as far as I know) unavoidable consequence of using supersampling and bilinear interpolation. If you zoom in on the image, you'll see what amounts to a one-pixel blur, so the black-white edge is now dark gray where it was black, and light gray where it was white. If the image is moved or rescaled a bit, all the edges will be shades of gray, and the darkening effect will more or less disappear, as it will for other images that don't have a bunch of black-to-white transitions. So while I wouldn't call it a feature, it's not much of a bug, either. EDIT: Fixed spelling error in plugin name. A checkerboard pattern and a grid pattern to demonstrate anti-aliasing is here: The plugin is here (beta 1.1): PerspectiveTransformation1_1.zip (the old version) This is version Beta 1.2: PerspectiveTransformation1_2.zip (the current version) Here is the source code for the older version: EDIT: Beta version 1.2. Changes include: Control points start in the corners instead of the center of the screen. The corner points can be moved outside the window boundary (the current limit is -1.5 to 1.5). The corner controls, and the other double controls, are 3 decimal places instead of two, for more precise control. The XY Proportion control works differently, increasing one dimension while simultaneous decreasing the other. I thought it would be simpler to use if it only changed one dimension at a time, but found it to be difficult and confusing.. A Help menu is added. Some minor cosmetic changes, such as renaming the "Anti-Alias" control "Antialias." This is a VS project instead of CodeLab. I didn't include the source code, but if anyone wants it I'll post it. I will post the code when I release the non-beta version. I didn't remove either the CodeLab source or the old CodeLab DLL. There are a few enhancements I hope to add to the eventual non-beta plugin, but this version is, I think, a substantial improvement from the previous version. Please let me know what features you'd like to see (though you may not see them). Also, let me know if there are any spelling errors, grammar errors, or improvements I could make to the Help menu. I could gray-out the Antialias Quality when Antialiasing is disabled, but I thought it might be useful to be able to adjust it before enabling it. Opinions about this are welcome.
  4. I don't recall changing the theme, or having any option to do so. Perhaps that's the Windows 10 default setting.
  5. Lately I've had several occurrences of the PDN cursor disappearing. When I move the mouse outside the PDN window, the cursor is visble, and when it's within the PDN window, everything works normally other than the lack of a visible cursor. I tried a few things, such as changing the Tool (and hence type of cursor), but haven't found any way to make the cursor visible again.
  6. Thanks. Next time it occurs I'll try disabling Animations and see what happens. (I don't believe the last time it occurred I had any active selections, which is about the only thing I can think of that's animated.) I thought Windows Areo was a Windows 7 thing, back when the window design was a bit elegant, not the current utilitarian squared-off-corner look.
  7. From the lack of response, I seem to be about the only one experiencing this problem, but I'm certainly experiencing it to an annoying degree. It's very bothersome. I have to restart PDN, which causes me to lose all the current plugin settings. It seems to always begin when I run a plugin. One time the cursor returned after a while, but that was the exception. I've waited for many minutes without the cursor reappearing.
  8. It happened again, so I tried disabling hardware acceleration. It had no effect, I don't know, though, if that change takes place immediately or not until PDN is restarted. EDIT: I also tried re-enabling Hardware Acceleration, without any affect, but after I went to add this comment and returned to PDN, the cursor was back. I don't know if it was something I did, or if I just had to wait long enough.
  9. Re-downloading all the plugins sounds like a lot of work. Being lazy, I'd just temporarily move them into another folder.
  10. Application version: paint.net 4.0.13 (Final 4.13.6191.1824) OS Version: 10.0.14393.0 Workstation x64 .NET version: CLR 4.0.30319.42000 x64, FX 4.6 Processor: "Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz" @ ~3193MHz (4C/4T, DEP, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, XSAVE) Physical memory: 8108 MB Video card: Intel(R) HD Graphics 4600 (v:8086, d:412, r:6), Microsoft Basic Render Driver (v:1414, d:8C, r:0) Hardware acceleration: True (default: True) UI animations: True UI DPI: 96.00 dpi (1.00x scale) UI theme: Aero/Aero + DWM (Aero.msstyles) Updates: True, 4/5/2017 Locale: pdnr.c: en-US, hklm: en-US, hkcu: en-US, cc: en-US, cuic: en-US Nothing special about my mouse functions or parameters. Defaults except perhaps the motion speed. My mouse is a standard HID-compliant Dell USB mouse with the Microsoft driver.
  11. Read BoltBaits's link, but here's a very brief explanation: The alpha value determines how much of the lower layers show through. For a fully opaque layer, if a pixel's alpha is the maximum value of 255, the pixel is opaque. If the pixel's alpha value is 0, the pixel is completely transparent. For alpha values between 0 and 255, the pixel is partially transparent, with the opacity increasing as alpha increases. (Note: the layer itself has an opacity value which changes the transparency of all the pixels in the layer. The layer opacity is combined with each pixel's alpha to determine the transparency. If either is 0, the pixel will be transparent.)
  12. Which plugins are most useful depends on what you want to do. The best plugins for creating images are often not the same as the best plugins for editing photos. I suggest you first look at the section of the forum devoted to plugin packs. The pinned threads are for packs judged to be particularly useful to a wide number of users. Of course, just because a thread isn't pinned doesn't mean the plugins aren't useful. Ed Harvey's effects aren't pinned, and I find many of them to be very useful. As toe_head2001 suggested to you recently, you might want to find tutorials that do the kind of thing you're interested in, and download the plugins used. That's probably how I got most of my plugins.
  13. This is a release version of a plugin I began almost exactly a year ago ago. The plugin is intended to aid in editing a region within a larger image, allowing the layers to be moved around the region without losing the areas outside the region. The View Framer is located under Effects>Render. The biggest improvement over the beta version is the addition of a scale factor to allow the image to be edited at a higher resolution than the final version. The View Framer surrounds the region with a semi-transparent background and optional guidelines. The result looks like: As the Help file describes it: View Framer renders a guide to frame a rectangular region within the image. The view frame should be rendered into a separate layer above the image layers. To create a flattened version of the region, the view area can be selected uisng the Magic Wand, and then copied into the new image using Copy Merged followed by Paste into New Image. The controls are: Width: The width of the view frame, before scaling. Height: The height of the view frame, before scaling. Scale: The amount to scale the view frame. Because the scaled width and height are converted to integers, non-integer scaling factors may alter the view frame's aspect ratio. The scaling factor is clamped so that the view frame is always inside the image. Location: The location of the view frame. Because the view frame must always fit inside the image, this is not the location of the view frame center. Background Color: The color of the region outside the view frame. The choices are Black and White. Background Opacity: The opacity of the region outside the view frame. Guideline Thickness: The thickness of guidelines drawn around the view frame. Specifying zero thickness disables the guidelines. Extend Guidelines: When checked, the guidelines will be extended to the image boundaries. Horizontal Guideline Color: The color of the horizontal guidelines. Selecting None disables the horizontal guidelines. Horizontal Guideline Opacity: The opacity of the horizontal guidelines. Use Horizontal Color and Opacity for Vertical Guidelines: When checked, the color and opacity of the veritcal guidelines will be match the horizontal values. Vertical Guideline Color: The color of the vertical guidelines. Selecting None disables the vertical guidelines. Vertical Guideline Opacity: The opacity of the vertical guidelines. The User interface: Because I wanted to add a few features that aren't available to CodeLab plugins, it's a Visual Studio project. I'll try to post the project to a public site soon. Here is the plugin: ViewFramer.zip
  14. This plugin applies shading to a texture defined by a height map, and also applies various displacement modes to an image that's mapped onto the texture.. The height map is a black and white image. Normally black represents 0 and white represents the maximum height, but this can be reversed. I know there are plugins that do similar things (so you don't need to tell me) but I believe this plugin has more features. It certainly has plenty of controls. The plugin is under "Effects>Height Map>Texture Shader." ("Look for the golden orb!") ============================================================================= The plugin: TextureShader_ver2_1.zip ============================================================================= The interface (or as much as will fit) looks like: The controls are: Image: Specifies the source of the image mapped onto the texture. It can either be the clipboard, or a constant color. Pixels outside the image range of the clipboard can be transparent, Clamped, Tiled, or Alternately Tiled. When Alternately Tiled is selected, the tile orientation is reversed for every other tile, so that the tiles match at the edges. The edge pixels are not repeated. When a color is used, the image mapping methods have no effect on the final image. Clipboard Image Size: Increases or decreases the size of the clipboard image. Clipboard Image Offset: Moves the clipboard image relative to the texture. Clipboard Image Rotation: Specifies a counterclockwise rotation angle, in degrees. Clipboard Image Mapping Method: Specifies how the image is mapped onto the texture. The choices are: Surface Offset 1: Uses the height and gradient of the texture to attempt to map the image onto the texture as if it were painted onto the surface. Surface Offset 2: An alternate method of mapping the image as if painted onto the surface. Gradient: The simplest mapping method. Displaces the image in the direction of the gradient, in proportion to the gradient magnitude. Gradient-Z: Displaces the image in the direction of the gradient, in proportion to the product of the texture height and the gradient magnitude. Refraction: Displaces the image as if it were refracted by the texture, in accordance with Snell's Law. The Displacement Scale is proportional to the Index of Refraction Reflection: Displaces the image as if it were reflected by the texture surface. The Displacement Scale is proportional to the distance from the texture to the reflected plane. Because the angle of reflection equals the angle of incidence, points with gradients of more than 45° will not reflect the image and will be rendered as transparent. Reflection (Ignore Height): Displaces the image as if it were reflected by the texture surface, but uses only the gradient, ignoring the effect caused by the texture height. Reflection (with Re-reflection): Applies reflection, but approximates the re-reflection of downward reflection vectors. Faux Reflection: Approximates reflection for gradients of less than 45°, but produces non-transparent pixels for gradients greater that 45°. Faux Reflection (Ignore Height): Applies Faux Reflection, ignoring the effect caused by the texture height. Divide Mapping Displacement by Ten: Specifies that the Mapping Displacement should be divided by 10 to decrease the control's range. Mapping Displacement: Controls the amount the image pixels are displaced. The effect depends on the Mapping Method. For most methods, it acts as a general scaling factor, but for Refraction and Reflection it has a specific physical meaning. For some mapping methods, such as reflection, setting this value to 0 does not result in no displacement. Divide Texture Height Scale by Ten: Specifies that the Texture Height Scale should be divided by 10 to decrease the control's range. Texture Height Scale: Increases or decreases the texture height. Texture Height Curvature: Increases or decreases the texture height curvature. Generally, positive values round the texture while negative values steepen the texture. Intensity Increases with Height: Normally black represents 0 and white represents the maximum height. When this control is unchecked, the direction is reversed. Use Alpha from Texture: Selecting this option causes the alpha value of the texture to be multiplied by the image alpha. Otherwise, the alpha value of the texture is ignored. (Use caution in making areas of the texture transparent; many methods that make pixels transparent also modify the color components, which will change the edge gradient.) Ambient Light Color: Sets the color of the ambient light source. Ambient light affects all pixels equally, no matter their orientation. The default color is black (no ambient lighting). Directional Light Color: Sets the color of the directional light. The default color is white. Directional Light Direction (Use Outer Ring to Reverse): Sets the direction of the directional light. The directional light's effect on a pixel is determined by light's direction and the texture's gradient at the pixel. Moving the outer ring to the left side of the control reverses the light direction. Directional Light Intensity: Increases or decreases the intensity of the directional light. The directional light contributes both diffuse and specular (reflected) light. Specularity: Determines the shininess of the surface. Increasing this value decreases the diffuse lighting and increases the specular lighting. Specular Concentration (Exponent): Determines the sharpness of the specular highlights. Higher values produce sharper highlights. Apply Surface Color to Highlight: Normally the specular highlight is the color of the directional light, and does not depend on the surface color. Highlights on colored metal take on the color of the metal. Selecting this option multiplies the light color by the surface color when producing the highlight. Antialias: Specifies that antialiasing should be used. Antialiasing can improve many images, especially when reflection is used. Antialiasing will slow the effect, because many more points need to be processed. Antialias Quality: Specifies the number of samples in each direction per pixel. The total number of samples per pixel is this value squared. In what may to some seem contrary to expectations (but which I think makes sense), the canvas image is the texture map, not the image that's mapped onto the texture. The image to be mapped onto the texture must be in the clipboard. There's also the option of using a color rather than a clipboard image, in which case only shading is applied. Typically, the height map is produced by blurring a black and white image. For example, the MJW in the gold reflection image is blurred text. The height map normally must be black and white. The plugin does not convert color images into intensities. One problem is that for some textures there are obvious "waterlines." This is a result of the very limited precision of the height map when used with the normal black-and-white representation. BTW, the gold refection example was produced by the trick of setting the light colors to a gold color (something like RGB = (255, 190, 0) when at full brightness). If I'd wanted to make the background silver, I could have rendered it with white light. The fact that plugins preserve the settings, including image position, between invocations can be a big advantage when rendering different parts of the image with different distortions, light colors, etc. The texture height map can be 24 bits, consisting of the concatenated RGB components (which is why 8-bit maps must be black and white). Here is a 24-bit sphere height maps: If you use this is a texture, and set the Texture Height Scale to 255, it will produce a very smooth sphere. EDIT: A few suggested changes by Red ochre, and a couple of additional comments abut the reflection example. EDIT: I discovered I forgot to remove some try-catch debug code from the float version of GetSurfaceGradient. Though it shouldn't cause any problems, other than perhaps a slight slow down, I removed it from the posted source code, and will post a new DLL later today. If anyone discovers any spelling errors in the plugin, or has any suggestions for improved wording (or other improvements) for the controls, please let me know, so I can fix them at the same time. EDIT 08 Sep 2016: Release version 2.0.*. Now a Visual Studio project instead of CodeLab. Moved from Distort submenu into new Height Map submenu. Made various cosmetic and functional modifications to the user interface, such as using the Angle Control, and changing the number of decimal places. Made White instead of Clipboard the default Image. Added Texture Height Curvature control. Removed option of offsetting relative to selection instead of window. Added option of reversing Directional Light direction. Added Help menu. EDIT 09: 06 Apr 2017: Release version 2.1.* Mostly cosmetic changes. The interface was modified to look more like the Texture Merger. The Texture Height Scale range was increased. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  15. Thanks for your video, and for your creative use of the View Framer, ingwer! You and Seerose have come up with much more imaginative uses than the rather utilitarian purpose it was developed for.
  16. Excellent work, Red ochre!
  17. Another method, with a few more controls, is my Black and White+ plugin with the Primary Color set to blue, and the Use Primary and Secondary Color option enabled. That assumes you want an image that's just shades of blue and white instead of a color image filtered through blue. They look similar, but the original pictures seem to be the latter. I like the look of the purely blue-and-white image better, but that's just my opinion. Iron67 suggested some methods to produce the filtered version. You might also want to try different Blend modes for the blue filter-layer, such as Multiply.
  18. Wouldn't using the Hue/Saturation adjustment to modify the picture's saturation and lightness achieve a similar result?
  19. I don't know exactly what sort of extending you have in mind, but I'll remind you that the plugin rules forbid plugins from modifying the PDN user interface.
  20. I'm not certain what you're trying to do. If you want to add text on top of the picture, you should add the text in a separate initially-transparent layer (as xod demonstrates). If you want to make the entire picture partially transparent, you can change the layer's opacity using the Layer menu. I'm not clear on why you need to make the picture semitransparent in order to add text on it. (I don't doubt what you want to do makes sense, I just think you need to add some more explanation.)
  21. I released version 2.1. The changes are almost entirely cosmetic. I made the UI more like the Texture Merger UI, which I thought was better. I added colors to the sliders. I also increased the range of the Texture Height Scale. If there are any problems, are if there are any suggestions for improvements, please let me know!
  22. Many thanks to Pixey and Ego Eram Reputo for putting my pocket watch entry in the Galleria!
  23. This plugin is meant to work in conjunction with my other Height-Map plugins. It's in the "Effects>Height Map" menu. Here is Version 1.1 of the plugin: TextureMerger.zip The effect works similarly to Texture Shader, except instead of an image in the clipboard, the clipboard contains another height map. The height map in the canvas is combined with the height map in the clipboard in various ways. The default method, and the one it was originally written to do, is to add them. If plugins are rated by the number of controls, this is possibly the best plugin ever. The large number is necessary because there are so many things that need to be controlled: the window height scaling and offset, the clipboard orientation, scaling and offset, and the adjustments to the merged height. There are also controls for shading. Shading does not effect the merged height map, but it's necessary to judge the results. Because there's currently no way to automatically disable the shading before exiting, it must be disabled manually. (unless the shaded image is what is wanted). Fortunately, unlike the Texture Smoother, a mistake can easily be corrected with an Undo, followed by rerunning the Texture Merger. Here is the user interface (hide the eyes of sensitive children): According to the Help Menu: ---------- Texture Merger combines two height maps, one in the canvas and the other in the clipboard. Each height map consists of an 8-bit alpha channel and a 24-bit depth, formed by combining the RGB channels into a single 24-bit unsigned integer. The controls are: Clipboard Image: Specifies how pixels outside the clipboard boundaries are treated. Pixels outside the image range of the clipboard can be transparent, Clamped, Tiled, Alternately Tiled, or Brick Tiled. When Alternately Tiled is selected, the tile orientation is reversed for every other tile, so that the tiles match at the edges. The edge pixels are not repeated. When Brick Tiled is selected, every other row is offset by half the image width. The rows do not wrap from the top to the bottom. Clipboard Image Size: Increases or decreases the size of the clipboard image. Clipboard Image XY Proportion: Changes the XY proportion of the clipboard. Moving the control right increases the X size while decreasing the Y size. Moving the control left decreases the X size while increasing the Y size. Clipboard Image Offset: Moves the clipboard image relative to the canvas image. Clipboard Image Rotation: Specifies a counterclockwise rotation angle for the clipboard image, in degrees. Clipboard Image Mapping Method: Selects the method used to displace the clipboard image based on the canvas heights. (A number of methods are allowed which have no obvious physical meaning when merging height maps.) The choices are: No Displacement: Does not displace the clipboard image. Surface Offset 1: Uses the height and gradient of the canvas height map to attempt to map the clipboard image onto the canvas height map as if it were painted onto the surface. Surface Offset 2: An alternate method of mapping the clipboard image as if painted onto the surface. Gradient: The simplest mapping method. Displaces the clipboard image in the direction of the gradient, in proportion to the gradient magnitude. Gradient-Z: Displaces the clipboard image in the direction of the gradient, in proportion to the product of the canvas height and the gradient magnitude. Refraction: Displaces the clipboard image as if it were refracted by the canvas height map, in accordance with Snell's Law. The Displacement Scale is proportional to the Index of Refraction Reflection: Displaces the clipboard image as if it were reflected by the canvas height map surface. The Displacement Scale is proportional to the distance from the canvas height map to the reflected plane. Because the angle of reflection equals the angle of incidence, points with gradients of more than 45° will not reflect the image and will be rendered as transparent. Reflection (Ignore Height): Displaces the clipboard image as if it were reflected by the canvas height map surface, but uses only the gradient, ignoring the effect caused by the canvas height. Reflection (with Re-reflection): Applies reflection, but approximates the re-reflection of downward reflection vectors. Faux Reflection: Approximates reflection for gradients of less than 45°, but produces non-transparent pixels for gradients greater that 45°. Faux Reflection (Ignore Height): Applies Faux Reflection, ignoring the effect caused by the canvas height height. Divide Mapping Displacement by Ten: Specifies that the Mapping Displacement should be divided by 10 to decrease the control's range. Mapping Displacement: Controls the amount the clipboard heights are displaced. The effect depends on the Mapping Method. For most methods, it acts as a general scaling factor, but for Refraction and Reflection it has a specific physical meaning. For some mapping methods, such as reflection, setting this value to 0 does not result in no displacement. Divide Merged Height Scale by Ten: Specifies that the Merged Height should be divided by 10 to decrease the control's range. Merged Height Scale: Increases or decreases the height of the merged height map. The scaling affects the amount of displacement and the effective height for shading. Only the change in displacement changes the values in the merged height map. Merged Height Curvature: Increases or decreases the curvature of the merged height map. Merged Height Alpha Source: Selects the source of the alpha values for the Merged height map. The choices are: All Opaque: Make all heights opaque. Canvas Alpha: Use the alphas from the canvas. Clipboard Alpha: Use the alphas from the displaced clipboard. Composite Alpha: Use the composite alpha. This is the sum of the canvas and clipboard alpha minus the product. If either height is opaque, the merged height will be opaque. Height Merge Method: Selects the method used to combine clipboard heights with the canvas heights. The choices are: Add: Add the clipboard height to the canvas height. Subtract: Subtract the clipboard height from the canvas height. Multiply: Multiply the clipboard height by the canvas height. Maximum: Use the maximum of the clipboard height and the canvas height. Minimum: Use the minimum of the clipboard height and the canvas height. Clipboard: Use the clipboard height as displaced by the Mapping Method. Canvas: Use the canvas height and alpha, as modified by the canvas controls and the merged-height controls. Clipboard (No Displacement): Use the non-displaced clipboard height and alpha, as modified by the clipboard controls and the merged-height controls. Make Unmodified Canvas Heights Transparent: Specifies that if the merged height is the same as the canvas height, the merged height should be made transparent. This allows heights modified by the clipboard to be shaded separately from unmodified heights. Canvas Height Scale: Increases or decreases the canvas heights. Canvas Height Offset: Specifies the offset added to the scaled canvas heights. Canvas Height Curvature: Specifies the non-linear adjustment to the canvas heights, which increases or decreases the mid-range values while leaving the end-range values unchanged. This adjustment is applied before the scale and offset. Weight Clipboard Heights by Opacity: Specifies that the influence of a clipboard height on the merged height is proportional to the clipboard height's opacity. In particular, transparent heights are are ignored, and the canvas heights are used as the merged heights. This control is especially useful when offsetting the clipboard height in when the Height Merge Method is Maximum or Minimum. Invert Clipboard Height Range: Specifies that white clipboard pixels are 0 height and black clipboard pixels are maximum height. Scale Clipboard Heights by Clipboard Image Size: Specifies that the clipboard heights should be scaled to be proportional to the clipboard image size. Divide Clipboard Height Scale by Ten: Specifies that the Clipboard Height Scale should be divided by 10 to decrease the control's range. Clipboard Height Scale: Increases or decreases the clipboard heights. Clipboard Height Offset: Specifies the offset added to the scaled clipboard heights. Clipboard Height Curvature: Specifies the non-linear adjustment to the clipboard heights. Antialias: Specifies that antialiasing should be used. Antialiasing will slow the effect, because many more points need to be processed. but will often significantly improve the results.. Antialias Quality: Specifies the number of samples in each direction per pixel. The total number of samples per pixel is this value squared. ----------The following controls effect only the shaded image.---------- Show Shading (Disable Before Exiting): Specifies that the shaded height map should be shown instead of the actual merged height map. This must be disabled before exiting the effect in order to save the merged height map. Ambient Light Color: Sets the color of the ambient light source. Ambient Light affects all pixels equally, no matter their orientation. The default color is black (no ambient lighting). Directional Light Color: Sets the color of the Directional Light. The default color is white. Directional Light Direction (Use Outer Ring to Reverse): Sets the direction of the Directional Light. The Directional Light's effect on a pixel is determined by light's direction and the texture's gradient at the pixel. Moving the outer ring to the left side of the control reverses the light direction. Directional Light Intensity: Increases or decreases the intensity of the Directional Light. The directional light contributes both diffuse and specular (reflected) light. Specularity: Determines the shininess of the surface. Increasing this value decreases the diffuse lighting and increases the specular lighting. Specular Concentration (Exponent): Determines the sharpness of the specular highlights. Higher values produce sharper highlights. ---------- There are several changes from the Texture Shader, most of which I intend to add to the Texture Shader. Inspired by Red ochre, I added a Brick Tiled Clipboard Image option. I didn't include a Reflected Brick Tiled option, because I wasn't sure how useful it would be. Maybe I'll eventually add it. On several slider controls, such as the Texture Height, I added a divide-by-ten option. These are kind of awkward, but almost necessary to support the wide range of height-map heights made possible, especially using the Texture Smoother. Before the Texture Smoother, large height maps were difficult to produce without very noticeable waterlines, making them mostly useless. Some of the slider controls also use a non-linear range. Moving the slider at the low end of the range produces less change than the same movement at the high end. This allows fiver control at the low values. The Clipboard (No Displacement) Merge Method is useful for modifying a height map in the clipboard with no effect from whatever is in the window. I rather expect there will be a few bugs, since there are so many controls, and the interaction between them is quite complex. I'll follow this comment with a few examples of merged height-map images. EDIT: Version 1.1. I explain the changes in another comment.
  24. Okay, now I understand better. The short answer is that that's not what the Texture Merger or Texture Shader do. You need to have a Height Map. For the egg, preferably a 24-bit map, which means that the R,G, and B channels are treated as a single number. The Texture Merger is intended to make it easier to produce height maps. For an egg, I'd start with a sphere height map, like this: You can use the Texture Merger to make it oval instead of round. First, copy it to the clipboard Run the Texture Merger. Set the Merge Method to Clipboard (No Displacement). Set the XY Proportion to 0.12. Set the Merged Height Scale to 240. (Note: this only affects the shading, not the final height map.) Enable Show Shading, and you will be able to see what the shaded height map looks like. Now you can disable Show Shading and exit the Texture Merger and you'll have an egg height map. If you want to shade the egg green, set the Primary Color to green and run the Texture Shader. Set the Image to Primary Color. (Image is the image that's mapped onto the height map. It can be a fixed color, or from the clipboard.) Set the Texture Height to 240. Position the Directional Light to improve the results. (The default straight-on light direction is pretty boring!) You can adjust the speculariy controls if you want to make the egg shinier. If you want to make an Easter egg, you can put an pattern in the clipboard and set the Image to Clipboard.