Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/07/2017 in all areas

  1. I'd be happy to do so. For the watch face: I extensively used xod's Clock plugin, with lots of by-hand modifications, such as eliminating the numbers ending in five on the small dial. I did the tick marks separately from the numbers to get the positioning I liked. The part I like best is the way the outer (red) numbers go upside down at the bottom of the dial. I did that by first using MadJik's Polar Transformation plugin to transform the dial into rectangular coordinates to provide a guide for positioning. I typed the numbers at the proper positions, then used Polar Transformation to transform the numbers to polar coordinates. I drew the hands using the Line/Curve tool. I added a light drop shadow with KrisVDM's Drop Shadow. The circular indentation on the dial was done using the Texture Shader. The main number font (of which I'm quite fond) is actually a blackletter font called DS Walbaumfraktur. I think the little curls in the 2s and 3s give it a nice turn-of-the-century look (20th century, not 13th). For the watch case: This was almost all done using the Texture Shader and Texture Merger plugins. The metal case and the glass lens are essentially flattened spheres, with the Texture Merger's Curvature control used to modify the shape. The watch face was mapped onto the lens with the Texture Shader, using the Refraction mapping mode. The part of the case I like best is the gridded ring. To do that, I made a white-on-black rectangular grid, then blacked out everything but one row (so it was sort of like a railroad track). I then used Polar Transformation to make it circular, slightly blurred it to smooth the transitions, and mapped it onto the case with the Texture Merger using Subtract mode. It took a lot of playing around to get the right proportions! For the winding stem and knob: The winding knob is just a slightly horizontally-stretched sphere with a grid of vertical lines mapped onto it with the Texture Merger. The cylindrical part was a bit tricky. I started with 24-bit sphere height map. I selected a pixel-wide vertical rectangular slice, then used the Move Pixel tool to stretch it horizontally. That worked really well to form a cylinder for the stem and the ring. The ring is the part I like best, mostly because I had no idea how I was going to do it, but it turned out to be fairly easy. I just elongated the (24-bit) cylinder height map, and used Polar Transformation to transform it into polar coordinates. Because Polar Transformation is meant to deal with RGB, not height maps, the result had an uneven-looking surface caused by the faulty-for-24-bit-values interpolation (though less so than I expected). I used the Texture Smoother plugin to smooth it. The bottom of the stem bulges then narrows. The bulge was made by Adding a thin horizontal cylinder with the Texture Merger, and the indentation was done by Subtracting a thin cylinder. The exact details for the indentation are a bit complex; specifically, the way the profile is indented. When the cylinder was initially subtracted, the profile indentations were not transparent, but had a Z depth of 0, due to clamping. I used the Feather feature of the Texture Scaler to replace the 0 depth with transparency. The "ears" the ring goes through are very elongated (and possibly tilted -- I don't remember) spheres. I combined all the elements of the case with the Texture Merger before shading, using the Maximum merge mode. I shaded it with the Texture Shader using the Reflection (with Re-Reflection) shading mode. For the clipboard image (which is what is reflected), I used a sort of swirly pattern I made a long time ago for the Decorative Glass SOTW. I set the color of the lights to yellowish-orange so it looked like gold. The shading had one feature I hadn't expected, but was very pleased about. The winding stem and knob seem to be reflected onto the watch case. This is, I suppose, due to the way the Reflection (with re-Reflection) mode works. I wasn't completely happy with the case's gold coloring, which seemed a little overdone, so I recolored it using my HSV Scrambler plugin. I set the source for all the elements to Value. For the Hue, I set the Offset to produce a golden color, and I set the Scale factor to a quite small value, to add a slight variation, I set the Saturation controls so the saturation would decrease slightly as the Value increased. I adjusted to Value to get the contrast that looked good to me. One useful thing I discovered is that with the correct adjustments, I could get a very nice silver color. I liked it so well, I considered changing it to a silver watch, but stayed with gold. (I just realized all the features I like best -- the outside red numbers, gridded ring design on the case, and winding-stem ring -- involved the Polar Transformation plugin! Thanks, MadJik!)
    2 points
  2. 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_3_0.zip ============================================================================= The interface (or as much as will fit) looks like: he 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. Reflection Map (Equirectangular): Displaces the image as if it were reflected from a sphere surrounding the texture surface. The clipboard image is an equirectangular projection. Normally the width of an equirectangular projection is twice the height, but any image will be scaled to cover the entire sphere when the Clipboard Image Size is 1. The sphere can be rotated using the Clipboard Image Offset and Clipboard Image Rotation controls. The Mapping Displacement is inversely proportional to the sphere's radius. The higher the value, the more the reflection depends on the surface position. When 0, the reflection depends only on the gradient. Large values can result in the texture surface extending outside the sphere, in which case the outside region will be transparent. Gradient Map (Equirectangular): Displaces the image based on the intersection of the surface gradient vector with a sphere surrounding the texture surface. The clipboard image is an equirectangular projection. This mapping method is similar to Reflection Mapping, except the gradient vector is used in place of the reflection vector. 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. EDIT 10: 11 Feb 2018: Release version 2.2.0 Added Reflection Map (Equirectangular) mapping mode. EDIT 11: 28 Feb 2018: Release Version 2.3.0 Added Gradient Map (Equirectangular) mapping mode. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    1 point
  3. Thanks Remake! I've added your attachment to the first post.
    1 point
  4. 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!
    1 point
  5. Many thanks to Pixey and Ego Eram Reputo for putting my pocket watch entry in the Galleria!
    1 point
  6. CC SA-BY Source Images: https://commons.wikimedia.org/wiki/File:Cuvier-12-Hibou_à_huppe_courte.jpg https://commons.wikimedia.org/wiki/File:Cuvier-46-Martin-pêcheur_d'Europe.jpg Plugins/Effects Used: Postage Stamp Rubber Stamp Drop Shadow Crystalize Circle Text
    1 point
×
×
  • Create New...