-
Posts
1787 -
Joined
-
Last visited
-
Days Won
50
Everything posted by Arcturus
-
I am in the open in the direct light of the street lamp, not ambient light, yet the light gem is black. I was wondering whether it's supposed to be like that. Plus the NPCs have sudden urge to run down the stairs where they get stuck by wonky path finding.
-
@MirceaKitsuneI suspected that since the mission has a lighter tone the author decreased the difficulty level. The video was shot on medium difficulty I believe.
-
It's a fun premise. I played version 2 in Darkmod 2.12: there's a missing door / window model in two places: Guards loose me very quickly. The radius of that light doesn't seem to match the visuals. Something doesn't seem right.
-
Turns out in Unreal Engine custom cubemaps in 'Reflection Capture' probes and in the Post Process volume don't work the same way at all. The first one affects the glossy reflections only, the latter affects both glossy and diffuse reflections. Here's how different cubemaps affect both: Now I'm back to thinking that a single ambient cubemap + screen space reflections + soft enough lights might be just enough to have decent glossy reflections. In Unreal point lights have a radius which when increased makes shadows softer. But there's also a separate setting called "Soft Source Radius" that makes lights bigger in reflections. I managed to load custom cubemap files into Unreal. They simply have to be in .hdr format. I used a simple gradient: Heavy screenshots below:
- 30 replies
-
- 1
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
Having said all that. While having one cubemap image for the reflections would work, having one strength for the entire map won't. The value would somehow have to be tied to the values of lights in the locations.
- 30 replies
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
Some more tests in Unreal Engine. There is one point light in the room with a non-zero radius for soft shadow. There's one 'sphere reflection capture' probe. I alternated between captured cubemap reflection and some generic outdoor 360° scene from UE5 library. I couldn't figure out how to upload my own. Reflection probe had to be directly above the table, otherwise the captured light looked incorrect. The 'generic' cubemap can be placed wherever. An ordinary probe can be set up to use a custom cubemap, or it can be done in the 'PostProcessVolume' - and that's how I did it. Screen space ambient occlusion is, I think, on - on all screenshots. Screen space global illumination is tagged as a beta feature in UE5. Recently Blender's Eevee engine got SSGI too. I used Darkmod assets, except for those diamonds. Below is 27 images from imgur.com:
- 30 replies
-
- 3
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
The ASE importer doesn't work with Blender 4 series nor Blender 3.6. It works in 2.83.9. In newer versions the error message is KeyError: 'bpy_prop_collection[key]: key "Color" not found'
-
Since most Darkmod missions use global ambient light, you could have a one global cubemap for the entire mission. Unreal has a small selection of generic cubemaps. Here you can see how they are being reflected in all of the glossy materials. The reflections are some generic 360° images that have nothing to do with the actual scene, but it still looks nice. No probes or light baking required.
- 30 replies
-
- 1
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
Here's Unreal Engine with screen space reflections only. No 'reflection capture' (cubemap reflections). It looks ok as long as the lights are sufficiently soft. Zero size point lights will not get reflected in the shiny metal.
- 30 replies
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
We can think of adhering to some standardized material table or we can take a look at textures in some latest games for reference when it comes to color. My assumption though is that we can't remake the assets and have to reuse as much as possible.
- 30 replies
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
One possible path would be to invert all the specularmaps, change them to greyscale (some are in color), and crank the levels almost to the maximum: This way you end up with roughness levels closer to what you would expect. With the inversion of those maps connected to metalness sockets: Skin has a specularmap so it ends up being slightly metallic. There are material parameters in Darkmod like "skin" that perhaps could be excluded. Another problem is as I said that color of metals in diffusemaps is a bit too dark.
- 30 replies
-
- 2
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
@nbohr1more@STiFU In real world the difference in appearance comes from the difference in electric conductivity. Polished metals are mirrors: Modern mirrors are made by coating glass surface with aluminum or silver. James Webb space telescope uses gold. Whereas if you set metalness to zero you get a ceramic looking material: In principle specularmaps in Dark Mod should be equivalent to inverted roughness. The more white the spularmap values are the less rough the surface should be. In practice the specular effect in Darkmod was considered so strong, that most specularmaps were kept in the 0-0.5 range. Typically it's mostly metals that have specularmaps in Darkmod, but there are exeptions like the skin of NPCs. In the priesttop_s.dds for example, only metal parts have specularity, leather belt is black. All values are kept from zero to about 33% of white. Demonstration with a different lighting that shows the difference better. All materials with roughness 0: With specularmaps connected to roughness it looks practically the same: With inverted (in GIMP) specularmaps it's very rough looking: And with all materials set to 0.7:
- 30 replies
-
- 1
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
@STiFU Here's Unreal Engine 5 with just normalmaps plus diffusemaps connected to 'color'. Metalness is set to zero and roughness is set to 0.7 on all materials. It would look pretty similar to current Darkmod, except for the missing additional specularity on metal parts.
- 30 replies
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
@STiFUFully automatic conversion won't be possible. Closest you can get are the generic, tiling sets like the textures/darkmod/stone or wood. And that's because roughness and metalness in those cases can be defined by a single number. Just slap a metalness as a zero and roughness as something like 0.7 and it will be good enough. Later if you want to be fancy you can think about tweaking it further. Bigger problem are textures that combine different types of materials, e.g. metals with non metals, like many of the prop and character textures do. Using existing specularmaps might be helpful, but not always. I was for example able to utilize the priestbottom_s.dds specularmap: But I had to crank up the contrast in order to make the metalness and roughness maps: In the case of priesttop_s.dds specularmap however, the original texture has this noise that makes it difficult to use: That's why some manual work was involved in order to make the metalness nad roughness maps: That's why I wonder if there are original PSD files in the repository somewhere. Colors in general will need to be tweaked but metals especially. In Darkmod metals are generally dark with a bright specularmap added on top. Here's original diffusemap (I'm compressing to .jpg for the forum, btw): Here's the map in my demo. Gold is much brighter and more saturated: Parts of those textures are missing in my version, because different character models share some of the textures and here you see only parts used by the priest model. We probably should take a look how the big boys in the industry are doing it. Some basic palette can be created as reference for things like shiny steel, gold, cast iron, copper, skin. Modern engines still use normalmaps. You would need heightmaps if you wanted to implement displacement or parallax occlusion mapping, but those are nice to have not mandatory. Sketchfab has 'model inspector' where all the textures can be seen:
- 30 replies
-
- 1
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
@JetrellThanks. He still has shadowmesh sticking from his ass as he moves that needs fixing. I've been thinking, since we're now living in the future we might use AI to create masks for us. I tried the 'Segment Anything' extension in Stable Diffusion using the AI model developed by Meta. There are also models from other laboratories to choose from. It has a range of settings, some of which didn't work for me at all, some worked poorly, and some that work quite well. Here's a best case scenario where it does a pretty good job at isolating different parts of the image: There's also an option called 'Image Layout' that spits out separate image files for every detected feature. Those could be loaded for example into Krita as selection layers. Of course it's no use for a more intricate details, especially that I'm using compressed .dds files which have additional noise.
- 30 replies
-
- 3
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
Priest model's skinning was horribly mangled so I fixed it in the repository and on Sketchfab. It's still bad, but at least not fubar. The collar should be stiffer now and I glued the stole to the legs. It doesn't look great in idle animations but better when walking.
- 30 replies
-
- 4
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
I fixed some issues with builder priest model. Plus made some small changes to the rig.
-
If someone's interested, here's the .blend file with textures packed. I put in short comments in the nodes that describe what they're doing. When in 'render' or in 'material preview' modes, you can preview each node on the 3d model by connecting it to the material output. Ctrl+Shift+LeftMouse should do that automatically in newer versions of the program. At first I thought I would use Substance Painter, as this is the most popular app for texture maps creations. I have old version I bought on Steam, but I have some problem running it. For this purpose painting app isn't really required. In principle you could prepare all textures in an image editor. I made the masks needed in Gimp. I made one mask for the boot in Blender, because it was more convenient. However in case of complex models it is useful to have a render preview. In vanilla Blender, exporting texture maps is a bit cumbersome. There's a "TexTools" plugin that makes this a bit faster. There are also paid plugins that try to emulate the Substance Painter interface. You can see that some materials have additional stages: clear coat, sheen and subsurface scattering for skin. I didn't make any special textures for those. I had to invert green channel of the normalmaps, as Blender uses different convention from Darkmod. All maps except "color" maps use "Non-color" space. Something worth remembering if one wants to work in Blender. I used compressed .dds textures. There used to be a separate repository for original uncompressed Darkmod textures. Some may even have original sources with layers? That would help editing them. I think that ordinary environment textures like wooden floors, or stone walls wouldn't be a problem when transitioning to a PBR model. More problematic are textures with multiple different surfaces, like wooden doors that have metal hinges for example, because they require manual masking. It took me a moment to realize that the boots are made of leather bottom and metal top. There's a certain level of artistic interpretation. What material is the robe exactly. Is it very rough, or a little shiny? And how shiny should the metal parts be, etc.
- 30 replies
-
- 1
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
I tried this once years ago with a guard NPC. I noticed there have been ongoing discussions about PBR in Darkmod. So I put the builder priest on Sketchfab: https://skfb.ly/pqrrC I enabled model inspector, so you can take a look at all the texture maps. I haven't remade anything from scratch, mostly I brightened the metal parts of the diffusemaps and made metalness and roughness maps. And here's rendered in Cycles.
- 30 replies
-
- 6
-
- pbr
- physically based rendering
-
(and 4 more)
Tagged with:
-
I added a .blend file with a female character. I made some changes to both - I removed some drivers and added some new constraints to bones.
-
I tested this addon for importing and exporting md5.mesh and md5.anim in Blender: https://github.com/KozGit/Blender-2.8-MD5-import-export-addon It works with Blender 3.6.15 which is the latest version in the 3.0 series. It doesn't work with Blender 4.2. It seems that the culprit is the change in the 4.0 series from bone layers to bone collections. Here's an updated .blend file with male NPC animations. .blend file with a female model Like before: use armature_control to animate the model when you're done, select the tdm_ai_proguard armature object and Bake Action to Pose; select Visual Keying for the exporter to work you need to select both the tdm_ai_proguard and a mesh object that's being animated, e.g. proguard_armor
-
One more thing I noticed is that there is a tab in Object Properties where user can specify type of geometry for each object individually. This setting will override global export setting. This way one can export multiple objects at once, each as a different type.
-
Deform expand doesn't work with diffusemaps, unless you want to use shadeless materials. Here's animated bumpmap. With heathaze, to better sell the effect: table customscaleTable { { 0.7, 1 } } deform_test_01 { nonsolid { blend specularmap map _white rgb 0.1 } diffusemap models\darkmod\props\textures\banner_greenman { blend bumpmap map textures\darkmod\alpha_test_normalmap translate time * -1.2 , time * -0.6 rotate customscaleTable[time * 0.02] scale customscaleTable[time * 0.1] , customscaleTable[time * 0.1] } } textures/sfx/banner_haze { nonsolid translucent { vertexProgram heatHazeWithMaskAndDepth.vfp vertexParm 0 time * -1.2 , time * -0.6 // texture scrolling vertexParm 1 2 // magnitude of the distortion fragmentProgram heatHazeWithMaskAndDepth.vfp fragmentMap 0 _currentRender fragmentMap 1 textures\darkmod\alpha_test_normalmap.tga // the normal map for distortion fragmentMap 2 textures/sfx/vp1_alpha.tga // the distortion blend map fragmentMap 3 _currentDepth } } At the moment using md3 animation is probably the best option for animated banners: