Description
Key Learnings
- Learn about 3ds Max OSL shaders and third-party resources.
- Learn how to apply OSL Shaders at the scene and materials level in 3ds Max 2023.
- Learn about customizing OSL shaders to suit your needs.
- Learn about configuring the Arnold renderer to produce high-quality renderings.
Speaker
- SSSteven SchainSteven is the Post Production Supervisor and Media & Entertainment Content Manager for CADLearning products at 4D Technologies, where he develops content standards and creates content for Autodesk 3ds Max, Maya, Inventor, and Fusion 360 users that is used in AI and machine learning solutions, in-application performance support, and desktop and mobile apps. Steven is also the Post-Production Supervisor for all CADLearning products from 4D Technologies. Since 1998, Steven has contributed to Autodesk's certified courseware for 9 releases of 3ds Max, was a co-developer of the Autodesk ACI Program and 3ds Max fundamental standards, and is currently an Autodesk Certified Instructor. As a premier Autodesk trainer, he has continued teaching end users, companies, and many others, including The Walt Disney Company, Guess, and the United States Army. As an 8-year veteran of Autodesk University, Steven has taught classes ranging from creating particle fountains in 3ds Max, to classes on 3D printing and entrepreneurship.
STEVEN SCHAIN: Welcome, This. Is the Top Seven OSL Shaders for 3ds Max 2023 class number FTV502658. My name is Steven Schain the CEO of Spectra3D Technologies. A little bit of background about me. I'm a designer and trainer been teaching Autodesk 3ds Max, well, actually Autodesk 3ds 3D Studio since the DOS era. And I've been an Autodesk Certified Instructor since 1998.
For my training, I go into the name The 3D Professor, and I teach 3ds Max, Inventor, Fusion 360, and other programs. I'm also a designer. I've been designing for 3D-printing applications for Spectra3D Technologies. And I'm proud to say this is my 11th Autodesk University.
What we'll be covering in this class, is identifying some 3ds Max OSL assets and third-party resources. We'll look at applying OSL shaders to objects inside of 3ds Max 2023. We'll talk about customizing OSL shaders to create or modify existing materials, and then we'll identify seven of my personal favorite OSL shaders that I've used over the years.
So let's look at OSL and what OSL is. So what is OSL? What does it mean? It simply means Open Shading Language. It was developed by Sony Pictures Imageworks to have a universal shading language that they could go back and forth between different rendering applications made life easier for them. And it was completely open source. That was the idea behind it.
So let's look at some OSL basics. It's a high-level language. You don't need to learn C+ or anything to really be able to use open shading language in 3ds Max. It's much simpler to program. You really only need to learn the open shading language scripting, so if you're not a programmer, like me, and you need to modify a program or modify an OSL shader, it's much easier.
It does work with Arnold 5 and newer. So if you're using anything older than Arnold 5, it's important to update that, but if you're rendering in 3ds Max 2023 with Arnold, then you don't have to worry about. You have the latest version. And it works with OSL right out of the box.
So some shader resources that are available. On the screen before, you saw the Academy Software Foundation. They have an open shading language page on GitHub. Autodesk also has one, the ADN-devtech folder has a 3ds Max OSL shaders page, and then the gkmotu has some OSL shaders available.
One of the greatest resources, for me, has been the OSL shaders group on Facebook, and I recommend taking a look at that. And some folks that are active in the OSL shaders group are Zap Anderson and Mads Droschler. You can find them at their resources on GitHub and their websites.
So how do you learn OSL? If you have never seen the Autodesk 3ds Max Learning Channel, the YouTube Learning Channel is a great resource for getting to understand OSL shaders and just how to use 3ds Max in general. Zap Anderson has some lessons that are on the 3ds Max Learning Channel that you can go through to get a better understanding of what's available.
And also there's tutorials on Autodesk's Area website. If you're not familiar with the area.autodesk.com website, it's another fantastic resource for you to learn 3ds Max. And there are OSL shader tutorials available on that website, as well.
So when you're working with OSL shaders and actually using them inside of 3ds Max, you can use the OSL map, which is, essentially, just a series of maps that are available to you as discrete shaders. So you have the direct shader instance, and you can see a list here of the OSL shaders available in 3ds Max. And we'll go through some of these in this class.
They're also editable. I talked earlier about being able to edit an OSL shader within the 3ds Max Material Editor. You can edit the shader, whether you want to modify an existing shader or create your own. You can do that. You can also save a file. So if you modify a shader, you can save it as a new shader or overwrite the existing shader that you have edited. The other thing you can do is, as you're modifying it, you can compile the shader and see the changes directly within 3ds Max right then and there.
Another thing about OSL shaders is that they are accurate in the viewport when you're doing viewport rendering. So the shader that you see here on the spittoon, is just a Revit shader. And what you're seeing is exactly what I would see when I render, and it works really well with Arnold. So you can see the difference when viewing it in the viewport and when working with Arnold.
So my top-seven OSL shaders are ones that I've used for a while. They vary. Let's get started, and we'll take a look at what those shaders are. The first shader category that we'll look at are the curves. When I say category, there's more than one of these shaders.
You have three shaders available. One is a color gradient. One is for color correction, and the other one is a float shader. They all work the same way. They use a series of curves that you can edit directly within the shader dialog, and you can use those to modify a number of parameters. So let's take a look in 3ds Max what those look like.
So I'm going to come up in 3ds Max. I have the file already open. And this is a map of the Asheville area, which is where I live. And the first shader is the color curves shader. Now, this allows you to create a color gradient, just like you would with a gradient shader in 3ds Max. This is a very flexible shader. You have the ability to work with red, green, and blue curves, and each point has a position of value and an interpolation.
So we can work with that directly in the viewport if I want to pick on a particular color. So here's 0.5 with the position. Say I want to move that position to-- let's go directly to 0.5, and that will move that to the 50% mark, so it goes from 0 to 1 beginning to end. And then I have the color value RGB for each point.
Now, if this is a little small, I can pop out just the graph of the shader, and I can work with the points a little more easily. I can add flags. I can modify flags. I can change the position. So if I want a much more, let's say, a tighter difference here between the rock and the snow cover, I can do that. If I want to have the same thing here, let's move the grass down a little bit, and you'll see in the viewport, as I adjust this, that where the blue is for-- this is the French Broad River going through Asheville --where the blue is gets reduced.
And this is pretty straightforward. It's just using UVW map. That's a planar map going through the side, so it's projecting from the front. If I want to do something that's a little bit more detailed, I can change that from just a straight gradient to a gradient that uses another bitmap to modify it.
So this is the same gradient as before. The difference, however, is it's using a bitmap image to modify where the colors lie based on the grayscale of the image. This is also being used in the displace map. So this rock wall height map is being used as the map for the displacement of this geometry.
So here's the map. Here's the color curve that's being modified by this input map. And you have different modes. So I'm using the horizontal gradient. If I change it to vertical gradient, not really going to see much of a difference. And then intensity, so those are three different modes that you can use.
The next type of gradient is a color correction. Now, this is a plane that just has a noise map applied to it or a bitmap applied to it, so it's this color bitmap. And if I go straight from the bitmap to the color, you'll see that that's the original color. It's this blue.
Now, as I come in, I'm modifying that blue and changing it to green and then to white. So I'll remap the output to the base color here. And you'll see that it changes the color of that bitmap. And how you modify each of the colors will change the color that it's being modified by.
Another thing that I can do, is with each point, I have different interpolation. So I can modify that interpolation, and I'll show you that a little bit better here on this curve. And this curve is a simple curve, and it is just a float curve. So this float value is a number. So over the course of this plane, which is just a flat plane. And I have map coordinates generated that run from left to right on the plane.
With these points, if I add another point in here, and let's say, adjust this down and set the position to 0.6, so that'll move it before this one. Let's adjust this to 0.61. And then I have a linear interpolation coming out of that one. And let's pick that, and I'll do a linear interpolation coming out of that one. So these points here will give me a linear gradient from this point out to the end.
And here I have a Catmull Rom or I can do Monotone Cubic constant, which will just give me a flat value or again, linear. We'll keep a Catmull Rom, and I'll adjust that. Let's bring this down, there. So I can adjust these values, and those will, in turn, affect the channel that it's applied to. And this is applied to the transparency channel that is just using a value between 0 and 1 to determine the transparency of that part of the curve. So those are the curves. They're very flexible, and they can be used in just all different kinds of ways.
Let's go back to the presentation. And we have color correction float. The next one is the bitmap random tiling. And this one I like to use for things like grass is a good example. It allows you to randomize an image texture, so you can take one texture, and it could be a tiling texture or it may not be. And you can use that to modify that texture and create unique textures from one image. So you can vary the color, size, and all kinds of other parameters. We'll take a look at that.
So the random bitmap tiling allows you to modify an image that you put in. So let's go take a look at that in 3ds Max. So go ahead and open that file. Let's not save that one. And let's take a look at the random tiling.
So the image that we're using is this Bermuda grass image. And it is a tiling texture, but it doesn't tile very well. You can see seams, and it does, over time, repeat. So I'm going to turn off randomization, and let me put this to standard to get an idea.
So if we look at this, it's just one monolithic texture. There's no changes to it. When you render it, it's going to look that way. It's going to look sort of artificial. And by using this, you can add this randomization to it. So I can add a random by UV position, and I'm going to turn off the wiggle scale. Or let's turn off the fuzzy edge and the wiggleness. And let's take the wiggle scale to 0, and the block scale to 1.
And what you'll see is these blocks are now defining one tile of each of the images. It's the same image, just tiled over and over again. And I can also modify the value difference. So I'm going to modify these, and these are our hue value and saturation. We'll get to those in a minute.
So when we start looking at the blocks, I have the scale of the block. So if I bring this to 0.5, you'll see that it shrinks it in size. And I've got this saturation turned up, so you can better see what's happening. I have wiggleness, edge fuzziness, so if I do 0.2, you'll see it sort of blends the edges together, 0.3.
If I change this to high quality, you'll get a better idea. It'll blend it much more cleanly. And then I have wiggleness, and you'll see that as I increase the wiggleness, and the wiggle scale, that it gives me these wiggly edges. So say the wiggle scale is 0.2, and let's bring the wiggleness down to .25.
So that gives me a little bit of-- it's not just a linear pattern. And let's do 0.4 on the wiggleness. And then I will take the edge fuzziness and bring that to 0.4. So now I'm really blending these together. And I wouldn't normally have this hue and saturation, or the hue and the saturation add value with that much contrast. So here's value of 0 and 1 and a value of 0 and 1.
But let's finish going through this. And you'll see that the random rotation has a min-max value. So I can have the minimum rotation value of 5 degrees and a maximum of 260. And what that will do, is randomly throughout these tiles rotate and then scale. So I want the scale max at 1, and I can bring the minimum down to 0.8.
I don't want too much of a variation. I do want some large patches, some small patches. I might even bring this to 0.9. And then I have offset in U and V for each of the patches. I'll leave that at 0. Now, let's get to the hue saturation and value offsets.
So if I put a minimum hue of 0.05 and a maximum of 0.07, let's actually take this down to 0 and 0.07, that will vary the hue just ever so slightly from 0 to a 0.07 offset. Now, the saturation, I have going from 0 to 1. 0 is going to be black. 1 is going to be white. So I want the saturation to be, let's see 0.2 to a 0.5, or let's say at 1.2 so oversaturated. Let's do 0.8.
So that's going to give me a good amount of saturation, a little bit of oversaturated, a little bit of under saturated. And then the value at 0.9, to let's say, 1.1, give me a little bit of a higher value a little bit lower, and you can see that this now gives me this sort of patchwork of areas that are much more random.
I can adjust the block scale. Let's say, if I bring this up to 2, you can see that the pattern is just much bigger. And you can also really see that when I turn this fuzziness down, that I get a pattern that's bigger. It's not quite as varied as the original that I had the saturation and value at 0 and 1. But let's take this to 0.4, 0.4. And let's do this at 0.5, and that's going to give us a really nice just randomized version of that texture.
If I zoom out a little bit, and you can see the whole plane that it now doesn't just look like this monolithic grass texture. It looks much more natural. There's variations. There's spots that are oversaturated undersaturated, and then you can use this however you want. I like this. I've used it for grass over the years, and it has worked for me just super well. So let's move on.
And the next one is the HDRI shaders. There are two of those. There's an HDRI environment shader and an HDRI light shader. Those are used in the environment within 3ds Max, and let's take a look at how those work in the environment and how you can use them to light your scene.
So I'll go ahead and open the Environment scene. And the first thing I'm going to do is disconnect this, and I'll explain why in a minute. So this scene is being lit by an HDRI environment map. And if I come over to the Environment tab, you'll see that this shader here is instance in the environment map for this 3ds Max file.
This shader utilizes an HDR image. Could be HDR, could be open EXR any number of HDR environments. And this allows you to utilize that to visualize or to render lighting in the scene. Here I'm using a high-quality viewport, and as I look around, we'll orbit the camera, and you can see that this is a background environment's full-360-degree HDR image. I got this from the sIBL HDR library. Great resource if you want to play around with HDR images.
So here I have the alignment. I can adjust the rotation. You'll see, as I rotate it, that it's affecting the lighting in the scene. I can change the height, which I don't want to do here because I have what's called ground projection turned on. I can tilt it in the x, and I can tilt it in the y. I can also mirror the environment. So if it comes in backwards, for whatever reason, you can mirror it.
The next thing I can do is adjust the exposure. So if I have an exposure value of 1, that's fully exposed, and I also am using the camera's built-in exposure control to modify the exposure. And the reason why I'm using it. I started with an exposure value of negative 1.2 is what we're going to get to with the HDR lights. So I'm going to set this back to minus 1.2. That's a good value for this using the lights.
I can blur the background. So let's say I want this to be a little bit fuzzier, so we can go with 2. The number of samples will increase or decrease the quality. So if I have 4, you'll see that it's very, very noisy, and 16 is a good amount. 16 cleans it up a little bit, but I'm going to keep this at 0, so we have a nice sharp background.
And then ground projection, when I turn it off, and I orbit around the scene, you'll see that the ground is no longer in contact with the ground in the scene. Ground projection fixes that, and it's based on a position, which in this case, I have everything 0, 0 and a tripod height.
So from the image, where the image was taken to the floor, that's your tripod height. And my best guess on this was a little over 4' 11". And it seems to work pretty well. I don't get a stretched ground It looks nice and comes out pretty clean. I can use a custom background.
So let's say I don't want to use this background, and I have a low-resolution background for the HDR lighting, I can use a high resolution just a straight JPEG file or PNG file for the background or another map. So if I want to use a map that is just a gradient-- whatever it is I want to use, I can use it.
Now, the reason why I lowered the exposure is because of the next map I'm going to talk about, which is this HDRI lights. HDRI lights allow you to use images. And these are these images of virtual lights. And these ship with 3ds Max. And there's a number of resources online that you can find these lights available. And I am going to map the output of this HDR lights map into the additional lights for the HDRI background, or the HDRI environment. And watch what happens in the viewport when I do that.
Immediately, you see that there are now more well-defined shadows and more well-defined highlights on these objects. And here, I can look and see that there's three lights in this. And if I disable these two, you'll see that here is the original light. I can increase or decrease the exposure. So if I want this to be brighter, I can increase the brightness.
If I want this to be a larger light or smaller-- let's say I want this to be a pin spot, so make it 2. So the highlight is going to be a lot smaller. Let's put it up at 40 and make it a big broad area spotlight. And then this is going to do adjust the angle and the color temperature. So right now I have everything color balanced to 6,500 degrees.
And this is the position, and if I look at point1, so let's go to lighting and I have these point helpers. So point1 is right here. As I move point1 around the scene, you'll see that it is moving the position of that light, and it's tied to the light. So as I turn these on, you'll see if I pick this helper and move that, it's going to affect that light or this one.
The other thing too is, as I orbit the scene and I look, I can actually see these lights in the scene. You'll see that's a big area spotlight or area light. So that's helpful when you're lighting a scene. I don't use these exclusively, but when I'm lighting an indoor and outdoor scene and I want to have really good photorealistic lighting, I'll use these and they work great.
And if you're on a tight time budget, it's a really easy way to get super-high-realistic, highly-realistic lighting in your scene. So let's go back to the presentation, and let's look at another one. And I like a couple of different of these shaders that get information from the scene. And frame number is one of them.
So frame number grabs the current frame of the animation, and it allows you to add or subtract a frame offset from that. So when using this, you can take that frame number and pipe it through into something within your scene. And it allows you to automate the animation of whatever it is that you are wanting to animate. And you can use the frame number to do that.
So let's go back to 3ds Max. We'll open that file. And let's open time here. And if we look, this is the frame number, and there are a couple of OSL shaders that do this. Time in seconds draws, and that pulls the time information from the timeline. Frame number pulls a whole frame number from the timeline.
So when you're animating this, you'll see that it's piping that frame number into the value. So in this case, I'm taking this frame number and putting it into the number value for the digits OSL shader map. And this is kind of another fun like if you're making clocks or you're making counters. Anything you need animated numbers in 3DS Max, it's great to be able to use.
So here I have it set for four digits no decimal places. If I want to use two decimals, I can. But the frame number it's pulling from is going to give you a value here, and then I can offset that by whatever number if I want to offset it by 5 or minus 10, I can, or leave it at 0 to get the actual frame number.
Now, one thing that you could use this for more than just putting numbers on something, is for animating a value. So in a case like this, animating the value of this color gradient to glow-- it's not really the color gradient, but it's the glow of this panel. So it could be if you're a Star Trek fan, you'd see the lights flashing when they go to-- I don't know. If you're in the military it's all hands on deck or red alert.
But here I'm getting a frame number. I'm taking the value of that frame passing it through to a float multiplier. In this case, I'm multiplying the value of A by 0.2. I'm taking that value and passing it into an angle, so it's a float sine wave. It's taking a value in radians and creating a sine wave out of that. So this value is going to vary over time based on A the frame number coming in, and then it's giving me the angle modified by that multiplier. And it's going right into the emission values.
So I have a red mission color, but it's modifying the emission value based on this sine wave. And you can see, as I play it-- so if I just hit Play, it's doing that. As I adjust the value, let's say I bring this to 0.5, as I change it, you'll see it's flashing faster. Or if I go to 0.05 and hit Play, it's going to flash this slower based on that time value. So that's using this get frame OSL shader.
Next is the UberNoise. I've used the Noise shader in 3ds Max since release one of 3ds Max. It's one of the most useful shaders that I've come across. The OSL UberNoise shader is sort of the 3ds Max noise shader brought up to 11. And it has multiple noise types, and you can create infinite variations on each noise type.
And I use that for a lot of different things. One of the things I've always used it for, for animation is creating a terrain. And you can use it just by displacing the terrain. Let's take a look at that in 3ds Max. So I'll go ahead and open the UberNoise. And that'll take a second to load. I've got high quality set up here.
And I'll just open this UberNoise shader, and we'll take a look at this shader using these two planes. So this one is a plane that has a displacement map assigned to it using this just a float. All right, so map 30 is this map right here. Map 30, that's our UberNoise float map. And it's just offsetting it. And then I have a UVW map just going through the side of it, and it's giving me just the height based on this curves value.
So let's take a look at this. I have different noise types. So here's just a simplex, Perlin noise. And let's stick with Perlin noise, for now. And let's take a look at the base wave. Let's do 50, and you'll see that it gives me a smaller-- as I increase this, it's going to increase. Let's type it in 75 increases the size. The number of iterations and if you take a look, at the right, this is the grayscale value of the displacement. Let's change this to 10.
You'll see, as we increase the number of iterations, we get a more detailed looking texture. The frequency let's go with 0.5, and if we increase that to 2, you'll see that that frequency increases and gives us more detail. Let's change this back. Let's go with 0.75.
So you have gain. Let's say I do 0.2 here. It's a much greater or 1 is going to give me a different gain. So 0.5, you'll see that it's a bigger, then I have the ability to change the combination mode, and you can see how these-- let's keep it on Add. We can turn on or off layer distortion.
I have a layer distortion amount of 1. It's going to give me a little bit. You can see the difference between nothing and 1. Let's go to 4. I have a scale value for this of 0.5, or 0.5. And you'll see that it now distorts this in the sort of warbly pattern way. It's kind of cool.
There's also the step function, and what that does is, it will adjust the height. So here if I set a value of 0 to 1, that's going to give me a full range from 0 to 1. I can do 0.8, and it's essentially clipping those values bringing that value lower and 0.2, the base value higher. So I have a little bit more of a contrast between the high and the low.
And then my output, I can normalize the output function. And you'll see here that now this value is not being clipped, but I want to normalize it from 0 to 1. And then on this output value, I can also adjust the step function. And then I can change the colors. So if I want color A not to be black, but to be a gray, or even a color, for that matter.
Now, it's not going to matter too much for the displacement, but it will give me a different color in the color map. Let's keep that at 0, black and white. And then I can also modify this using an input map if I want to for the UV coordinates. By default, it's going to use whatever coordinates are applied to the geometry.
But if I have more than one, I can add a UV coordinates OSL shader to that map. So that is UberNoise, and I am super thrilled to be able to use UberNoise for so many different things. And it's just a fun texture map to use.
So let's go to our presentation. And let's look at the composite map. And this is another map that's really useful. It allows you to take two image layers and combine them using either an RGB channel or an alpha channel. So in this case, I'm going to map this image onto the back panel here of this spittoon sitting on a floor in an old-- it's supposed to be an old saloon.
So let's go open that file. And one thing to note about the composite map in 3ds Max, is that you don't see the end result in the viewport until it's rendered. So let's take a look at how this is set up. I have two images. I have this advance wood map. And then I have the spittoon sign that's being used as the overlay.
And you can see that I have the spittoon diffuse color going into the background. This is the bottom layer, so if you think of the bottom and the top layer, the bottom layer is underneath, and the top layer gets put over it. And whatever you use as the alpha channel, the top layer will be put on top of the bottom layer. You can reveal the bottom layer. You can think of it that way, as well, as you're revealing the bottom layer, through the top layers transparency.
So here, if I have the bottom layer as the advanced wood, and the top layer is using this PNG file, this PNG file has a built-in alpha channel. So I'm using the RGB for this as the top layer RGB. And the alpha channel for it as the alpha. And I can set up this as pre-multiplied or not.
And then the blend mode I have-- if you're familiar with Photoshop, I have different blend modes. So here, if I make this a little bigger-- and let's zoom in on this. I have normal, average, darken, multiply, color burn, dodge. So screen is just going to lighten it up. So I'm going to keep this as normal because I want this to be sort of painted on.
And in the viewport, I have standard. If I use high quality, then this will take a minute to refresh. It really isn't going to make any difference. The high-quality viewport will take a little bit of time, but notice that it's still showing you that. If I go ahead, and instead of high quality, let's keep this standard. And I'm just going ahead and render.
And you'll see that when I render it, it gives me the composite correct. And since this is being used as the color, you'll notice that the pattern of the bump in this, shows through the actual image. And I'm not going to let this render here.
But you'll see, if I go to the texture itself, that the bump map is being pushed into the normal for that. And the image map, the base color map here, is being taken from the composite map. So you can also layer composite maps together. So if you want to have layer on top of layer, you can.
And let's take a look at the last one, which is the UberBitmap. The UberBitmap is a OSL shader that utilizes the OpenImageIO library. And it's a monolithic bitmap shader, meaning it contains your position, rotation, and scale. You can adjust the gamma. You can change the rotation for it, and you can output the RGB, alpha, luminance, and average grayscale. So let's take a look at this in the UberBitmap.
We'll go ahead and open the file not going to save that. The UberBitmap can be used as a direct replacement for the original 3ds Max bitmap image. So here I'm using the UberBitmap for two different maps. And I'm using it for the walls of this tunnel, I'm using it for the color, and I'm using it for the displacement, or the normal map, for this tunnel texture.
So if we look what's happening, I've got an OSL float going into the scale. So the scale of this is being modified by that float map and so is the tiling. So the tiling is being used affected by this vector. And since tiling is x,y, and z, or U,V, and W, I need a vector that has three values.
And what that does is, it allows me to modify the channel scale, or not the channel scale, but the scale and tiling of both of these maps simultaneously. I could do the same for rotation and offset if I want, but I don't need that for this particular map. So this is a sign to the rock wall.
The wrap is periodic. You have four different ways of wrapping this, so the default-- let's change this to high quality. I'm going to lose a couple of my textures because they're older. But if you notice that the wrap on this as default is no good. Outside of this is just black.
Periodic is going to take it and tile it, which is the one I want to use. Damp is going to take the edge pixels and just stretch those edge pixels along, and you'll notice that it gets affected here and here. And it looks weird. Doesn't-- I don't know why I'd use that for this purpose.
And then there's mirror. So what that will do is, that will mirror this image. And it will give me a mirror scene here. I'm going to use periodic, and I can come in now and I can adjust the scale. So if I want this to be larger, I'll say, make that scale of 2 or 4. And you'll see that this scales up 4.5 and that will scale down that texture.
Now, I could also incorporate the previous, the randomized bitmap texture and use these floats for the tile for the normal map and the bitmap, but in this case, the tiling of this is pretty seamless. It's a good seamless tile. And since I'm not in this really big area, having a tile of 1 works just fine.
So that is UberBitmap. And it is a very flexible bitmap. You can set up real-world scale pretty easily. I don't have it set up for this. I can adjust the rotation of this. If I do 0.5, you'll see it'll rotate. Let's do 45. And that adjusts the rotation. Since I don't have this tied to the normal map, it's going to affect the visual of this. But let's leave this back at 0. And you'll see, as I ramp this up, that it is rotating that texture. Keep that at 0.
And that is my top-seven OSL shaders. So I thank you for your time. Again, my name is Steven Schain, CEO of Spectra3D Technologies. And you can reach me at stevens@spectra3d.com. I hope you have a great Autodesk University. We look forward to seeing you next year.
Downloads
Tags
Product | |
Topics |