Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Content Count

  • Joined

  • Last visited

Everything posted by havenphillip

  1. havenphillip

    Astrocuco deadth ;(

    Yeah man I'm a fan of your stuff. Your animation and modeling has always been great. It was always the health bar and stuff that I disagreed with but this looks way better.
  2. havenphillip

    Astrocuco deadth ;(

    Bro that's a much better looking health bar and stuff.
  3. Ok so I didn't quite do one shader a week but I got to 52. I wasn't sure I could pull it off but hopefully the shaders are diverse enough to give something to work with for most occasions. I tried to keep the language consistent throughout and organize them sort of from easy to hard. I threw in all kinds of links because I don't know a lot of the technical terminology. I don't know how Ultra is going to be but I get the impression it's not going to be too much different. From what I understand, Ultra uses the PBR model for lighting rather than the Blinn-Phong and it uses Vulkan as its shader l
  4. havenphillip


    According to learnopengl.com PBR - or physically based rendering - is "...a collection of render techniques that are more or less based on the same underlying theory that more closely matches that of the physical world...[it] aims to mimic light in a physically plausible way...[and] generally looks more realistic compared to our original lighting algorithms like Phong an Blinn-Phong...PBR is still nonetheless an approximation of reality...which is why it's not called physical shading, but physically based shading. For a PBR lighting model to be considered physically based, it has to satisfy th
  5. I don't know buffers that well. From my understanding you have to use a script. I'm sure Leadwerks can do it somehow. Here's an example of using a buffer. This is about as far as I've gotten with those. The buffers aren't documented so there's not a lot of help figuring them out: basic minimap.zip
  6. Ok. Maybe I don't need that. I want to make a tracks shader but the video I'm watching is calling for "blit"? There's not a lot of glsl examples out there but the closest thing looks like some of those mouse paint things on Shadertoy . The only thing I've found that leaves trails are the decals.
  7. You can do it in Shadertoy with iMouse so it's possible but is there any Leadwerks equivalent?
  8. Ok. What if you just change that fog range from 100 to 10 or something like that?
  9. havenphillip


    Thanks I appreciate it. I will keep it up. If Josh keeps making quality stuff that I can use then I'll annoy him forever. Brand loyalty.
  10. havenphillip


    So we went through a lot of fragment shaders. Did some vertex displacement. Went through tessellation. Now, some geometry. I don't have much to say about it. Just keep poking at it with a proverbial stick and eventually situations start to look familiar and you know what to do because it's similar to stuff you've encountered before. It does seem to me that there's not a lot of variety in geometry shaders. There's a bit, though. Enough to make it interesting. But grab these shaders and you'll have the gist of it. Here's a normals visualizer. This is like the first geometry shader ev
  11. Do you happen to know which channels Substance Painter uses for roughness, metalness, and ao?
  12. You're probably right. That would be my assumption as well. You can always look in the shader and see which textures are being used for what. If it's the mighty Shadmar he usually wrote in some good notes on which texture was which.
  13. Yeah looks pretty straightforward. You use grayscale images. I wonder if you could scroll one of them without moving the others. This would be great for PBR putting the roughness, metalness and ao all in one. I get it.
  14. Yeah I don't know how to do channels on GIMP but I"ve seen videos on it. But I'm pretty sure that's the set-up. In shader it would just look like this: float col1 = texture(texture0,ex_texcoords0).r; float col2 = texture(texture0,ex_texcoords0).g; float col3 = texture(texture0,ex_texcoords0).b; ...where each of the color channels would be a different noise or whatever.
  15. I want to make a PBR shader for these. I've seen some tutorials around. I just haven't gotten to it. I don't know how well Leadwerks would handle it but I do know that the more textures you add to a shader the more it eats at your FPS. Albedo is like a diffuse map where the shadows are all reduced, which is better. You want the lighting and normals to handle the shadows. Not the diffuse. Your specular is probably the roughness, or the inversion of the roughness. PBR stuff looks really cool, though.
  16. If you liked vertex displacement, you're going to love tessellation. Tessellation is very similar, but incorporates the control and evaluation stages of the shader. The Leadwerks box brush creates a box that has two triangles per face. If you want to use some kind of vertex displacement on it you're going to have a bad time. With tessellation it's different because you are able to subdivide the faces with the shader, so you can use the shader to create more structurally complex models. The control stage in the shader does the subdivision, and the evaluation stage can be thought of as a post-co
  17. Note: In my last post shaders 36 and 37 weren't working correctly so I replaced them. If you got the old ones you can throw those out and re-download the new ones on the same links. These shaders are based on the Leadwerks soft particle shader, which I was directed to by Marcousik, and which I noobalyzed into a model shader. What the soft particle shader does is create a soft falloff in opacity depending on how close objects are behind it. To clarify, imagine looking down at a water plane, and a terrain beneath it. Depending on how far away the terrain is from the water plane determines
  18. Simplistically speaking, you could think of the vertex stage of a shader as the "position" of the object, and the fragment stage as the "color." All you really need is position and color. Vertex displacement manipulates the position to warp or move the object. There are many ways to do it but the whole trick revolves around the ex_vertexposition. You may notice in every model shader you have these two lines in the vertex stage: ex_vertexposition = entitymatrix_ * vec4(vertex_position,1.0); gl_Position = projectioncameramatrix * ex_vertexposition; I know from things
  19. I think so. I set the mask size to 0.1 and I don't think I'm seeing any repetition. At ground level it looks good. The textures themselves repeat.
  20. I don't deal with noise shaders that much but there are a lot of examples on Shadertoy. It has a lot of uses depending on what you want, but very often I see noise being used with raymarching to create 3D scenes. I prefer using textures because I can get what I want out of them and noise is a lot of math (noise shaders can get very large very quickly), but I figured a good shader series ought to have a noise function somewhere. I got this noise from iq of Shadertoy fame. Just a nice little simplex noise: 30_noise.zip You can make a mask out of your noise and
  21. havenphillip


    Parallax is a cheap way to add a lot of 3D details to any scene. The less vertices on a mesh the better, because parallax doesn't actually add any geometric information. And it requires only the bare minimum number of vertices to work. That makes it fast. And the effect is believable. All you really need is a heightmap and a dream... It's a lot of fun trying different textures with it, and if I could I'd use it for everything. However, there are a few limitations to parallax. The first problem you run into is that it has trouble with the curve. It works best on a flat plane or a slightly
  22. Masking is pretty easy and useful for adding some variety to your shaders. Masks are usually just some greyscale image that is turned into a float. In shaders floats have a very broad utility because you can add them just about anywhere. Super useful. And they can be used to blend textures or define areas in your material. Adding a mask in code is the same as with any texture. The greyscale quality allows you to use a single channel of that greyscale as a representative of all the channels. For instance the red channel. In code it looks something like: float mask = texture(texture5,e
  23. havenphillip


    One of those things I wanted to make - and a big reason I think many people get involved in shaders - is water. If you've been following along and grabbing these shaders you have now almost all the parts you need to make a basic water plane. If you understand these parts then you can manipulate them to customize your water as you see fit. I'm going to spend a little time in explanation here. In making this shader I start with the base shader and add a texture scroll effect on the normals (02_texture scroll). I then duplicate this texture and scroll it in the opposite direction to give th
  24. It's cube mapping https://adventuresinrendering.wordpress.com/2014/02/06/texture-mapping-and-image-based-lighting/
  • Create New...