Popular Post MirceaKitsune Posted October 17 Popular Post Report Posted October 17 Picked up an old mountain FM, I decided to scrap the original idea and repurpose the town I made for my multiple city hub idea which required expanding it. This is a new area I added, the large structure in the last two shots is meant to be a castle that may not look as I originally envisioned but I'm happy with the result none the less. 6 Quote Mods: Builder Blocks minigame | Keypad | Disguises
Popular Post MirceaKitsune Posted October 18 Popular Post Report Posted October 18 Delving into a small FM since I want to actually get something done instead of endlessly working on open worlds. Copied the church from another project I posted previously, I'm using some base architecture between missions to save time albeit with each one modified and made more unique. Amazing what projector lights can do when used right. 6 Quote Mods: Builder Blocks minigame | Keypad | Disguises
grodenglaive Posted October 19 Report Posted October 19 Nice! I'll have to into those projector lights - looks really good. 1 Quote
Goldwell Posted October 23 Report Posted October 23 On 10/17/2024 at 11:34 AM, MirceaKitsune said: This shot is by far my favorite out of all your FM screenshots so far. It's just so comfy looking and it invites me into explore this world. 1 Quote Shadows of Northdale Campaign ACT I: A Curious Mind | ACT II: Down The Rabbit Hole Stand Alone Missions Accountant 1: Thieves and Heirs | Accountant 2: New In town | Spring Cleaning | Lord Edgar's Bathhouse | Snowed Inn | Noble Affairs
MirceaKitsune Posted October 23 Report Posted October 23 Thank you! Shall definitely continue that project too, though it's a very large one so don't expect much soon unfortunately. From what can be expected soon, here's a few shots for something I'm aiming to get out for Halloween. Minor visual spoilers of upcoming FM. Very happy with the results and atmosphere I got! And yes, there is a reason for everything you see being the way it is, I'm not spoiling more beyond those shots. Spoiler 4 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted October 24 Report Posted October 24 (edited) Amazing what good materials can do even for existing textures. Gave the stained windows on the church building modules proper reflections and some glow for my ambient light, looks really sweet as you move around. Edited October 24 by MirceaKitsune 2 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 1 Report Posted November 1 (edited) Happy Halloween! Before the release of my latest FM I was testing whether making an AI invincible works. I was left with a set of images I thought would be fitting for this event, given how terrifying my test character ended up looking. No custom skins or mods, just the blood effect of cutting and shooting an invincible guy with arrows to make sure he doesn't die anytime soon if health is set to 1000000: The dynamic blood overlays created a character straight out of the horror films especially in the particular environment of my map Spoiler A few cinematic shots of a more positive character design I put together at that time. Spoiler Edited November 1 by MirceaKitsune 1 Quote Mods: Builder Blocks minigame | Keypad | Disguises
JackFarmer Posted November 1 Report Posted November 1 On 10/23/2024 at 3:47 PM, Goldwell said: This shot is by far my favorite out of all your FM screenshots so far. It's just so comfy looking and it invites me into explore this world. I am with Goldwell @MirceaKitsuneYour world building has improved dramatically - I hope you got it portalled in a fitting way. 1 Quote
MirceaKitsune Posted November 1 Report Posted November 1 43 minutes ago, JackFarmer said: I am with Goldwell @MirceaKitsuneYour world building has improved dramatically - I hope you got it portalled in a fitting way. Thank you, I'm doing my best! I understand portals better too and designing geometry around them: Sometimes I have to use a lot of them as I prefer having some open areas, thankfully there doesn't seem to be any penalty in the engine. My guide is making sure I never drop under 80 of 144 FPS on my particular machine, judging those things can be a bit tricky as every computer is different. Quote Mods: Builder Blocks minigame | Keypad | Disguises
Popular Post MirceaKitsune Posted November 6 Popular Post Report Posted November 6 New idea I'm working on. Does this look good to everyone else? 8 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 12 Report Posted November 12 Based on feedback after my above post, I decided to turn this FM into a festive map where the action takes place during a holiday. It was a good chance to experiment with a fun concept: Having banners and lights attached to horses. One horse carries a large banner that sways in the wind, the other a lantern that sings and blinks with the music (default music box audio). Must say it's quite fun to watch them parading the streets this way! 2 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 12 Report Posted November 12 Better version of the banner horse with banners on the sides. 1 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 16 Report Posted November 16 Couldn't resist capturing a few temporary circumstances that emerged from me testing the new turret in an alarm protected shop. Enjoy 4 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 22 Report Posted November 22 Oh hey, I can see myself from here! To my surprise the screen can film itself too with at least one level of recursion, very well designed. Isolated room so don't worry about performance, overall this will be neat to have. 2 Quote Mods: Builder Blocks minigame | Keypad | Disguises
Arcturus Posted November 22 Report Posted November 22 @MirceaKitsune Can you try pasting this code from the tone mapping thread into \glprogs\stages\tonemap\tonemap.frag.glsl file? v02: Spoiler /***************************************************************************** The Dark Mod GPL Source Code This file is part of the The Dark Mod Source Code, originally based on the Doom 3 GPL Source Code as published in 2011. The Dark Mod Source Code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. For details, see LICENSE.TXT. Project: The Dark Mod (http://www.thedarkmod.com/) ******************************************************************************/ #version 330 in vec2 var_TexCoord; out vec4 draw_Color; uniform sampler2D u_texture; uniform float u_gamma; uniform float u_brightness; uniform float u_desaturation; uniform float u_colorCurveBias; uniform float u_colorCorrection, u_colorCorrectBias; uniform int u_sharpen; uniform float u_sharpness; uniform float u_ditherInput; uniform float u_ditherOutput; uniform sampler2D u_noiseImage; /** * Contrast-adaptive sharpening from AMD's FidelityFX. * Adapted from Marty McFly's port for Reshade: * https://gist.github.com/martymcmodding/30304c4bffa6e2bd2eb59ff8bb09d135 * Note this is only the most basic form of CAS. The AMD original * can do more, including up- and downscaling. As that's harder to implement, * we're keeping it simple here. */ vec3 sharpen(vec2 texcoord) { vec3 a = textureOffset(u_texture, texcoord, ivec2(-1, -1)).rgb; vec3 b = textureOffset(u_texture, texcoord, ivec2(0, -1)).rgb; vec3 c = textureOffset(u_texture, texcoord, ivec2(1, -1)).rgb; vec3 d = textureOffset(u_texture, texcoord, ivec2(-1, 0)).rgb; vec3 e = textureOffset(u_texture, texcoord, ivec2(0, 0)).rgb; vec3 f = textureOffset(u_texture, texcoord, ivec2(1, 0)).rgb; vec3 g = textureOffset(u_texture, texcoord, ivec2(-1, 1)).rgb; vec3 h = textureOffset(u_texture, texcoord, ivec2(0, 1)).rgb; vec3 i = textureOffset(u_texture, texcoord, ivec2(1, 1)).rgb; vec3 mnRGB = min(min(min(d, e), min(f, b)), h); vec3 mnRGB2 = min(mnRGB, min(min(a, c), min(g, i))); mnRGB += mnRGB2; vec3 mxRGB = max(max(max(d, e), max(f, b)), h); vec3 mxRGB2 = max(mxRGB, max(max(a, c), max(g, i))); mxRGB += mxRGB2; vec3 rcpMRGB = vec3(1) / mxRGB; vec3 ampRGB = clamp(min(mnRGB, 2.0 - mxRGB) * rcpMRGB, 0, 1); ampRGB = inversesqrt(ampRGB); float peak = 8.0 - 3.0 * u_sharpness; vec3 wRGB = -vec3(1) / (ampRGB * peak); vec3 rcpWeightRGB = vec3(1) / (1.0 + 4.0 * wRGB); vec3 window = (b + d) + (f + h); vec3 outColor = clamp((window * wRGB + e) * rcpWeightRGB, 0, 1); return outColor; } float mapColorComponent(float value) { float color = max(value, 0.0); color = pow(color, 1.0 / (u_gamma * 0.75)); // Increase gamma correction to make the image brighter color *= (u_brightness * 8); // Increase brightness to make the image brighter if (u_colorCurveBias != 0.0) { float reduced1 = 1.0 - pow(2.718282, -3.0 * color * color); color = mix(color, reduced1, u_colorCurveBias); } if (u_colorCorrectBias != 0.0) { float reduced2 = 1.0 - pow(2.718282, -u_colorCorrection * color); color = mix(color, reduced2, u_colorCorrectBias); } return color; } vec3 ditherColor(vec3 value, float strength) { vec2 tc = gl_FragCoord.xy / textureSize(u_noiseImage, 0); vec3 noiseColor = textureLod(u_noiseImage, tc, 0).rgb; value += (noiseColor - vec3(0.5)) * strength; return value; } vec3 applyTonemapping(vec3 color) { float A = 0.15; float B = 0.4; float C = 0.2; float D = 0.45; float E = 0.; float F = 0.6; return ((color * (A * color + C * + D * E) / (color * (A * color + + D * F)) - E / F; } vec3 adjustHighlightsSaturation(vec3 color) { vec3 highlightBoost = vec3(1.2); // Adjust this value to control the highlight saturation vec3 midtones = vec3(1.0); // Adjust midtones saturation here vec3 shadows = vec3(0.8); // Adjust shadows saturation here vec3 adjusted = mix(color * shadows, color * midtones, smoothstep(0.2, 0.7, color)); return mix(adjusted, color * highlightBoost, smoothstep(0.7, 1.0, color)); } void main() { vec3 color; if (u_sharpen != 0) { color = sharpen(var_TexCoord); } else { color = texture(u_texture, var_TexCoord).rgb; } if (u_ditherInput > 0) { color = ditherColor(color, -u_ditherInput); } color.r = mapColorComponent(color.r); color.g = mapColorComponent(color.g); color.b = mapColorComponent(color.b); color = applyTonemapping(color); color = adjustHighlightsSaturation(color); if (u_desaturation != 0.0) { float luma = clamp(dot(vec3(0.2125, 0.7154, 0.0721), color.rgb), 0.0, 1.0); color = mix(color, vec3(luma), u_desaturation); } if (u_ditherOutput > 0) { color = ditherColor(color, u_ditherOutput); } draw_Color = vec4(color, 1); } v01: Spoiler /***************************************************************************** The Dark Mod GPL Source Code This file is part of the The Dark Mod Source Code, originally based on the Doom 3 GPL Source Code as published in 2011. The Dark Mod Source Code is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. For details, see LICENSE.TXT. Project: The Dark Mod (http://www.thedarkmod.com/) ******************************************************************************/ #version 330 in vec2 var_TexCoord; out vec4 draw_Color; uniform sampler2D u_texture; uniform float u_gamma; uniform float u_brightness; uniform float u_desaturation; uniform float u_colorCurveBias; uniform float u_colorCorrection, u_colorCorrectBias; uniform int u_sharpen; uniform float u_sharpness; uniform float u_ditherInput; uniform float u_ditherOutput; uniform sampler2D u_noiseImage; /** * Contrast-adaptive sharpening from AMD's FidelityFX. * Adapted from Marty McFly's port for Reshade: * https://gist.github.com/martymcmodding/30304c4bffa6e2bd2eb59ff8bb09d135 * Note this is only the most basic form of CAS. The AMD original * can do more, including up- and downscaling. As that's harder to implement, * we're keeping it simple here. */ vec3 sharpen(vec2 texcoord) { vec3 a = textureOffset(u_texture, texcoord, ivec2(-1, -1)).rgb; vec3 b = textureOffset(u_texture, texcoord, ivec2(0, -1)).rgb; vec3 c = textureOffset(u_texture, texcoord, ivec2(1, -1)).rgb; vec3 d = textureOffset(u_texture, texcoord, ivec2(-1, 0)).rgb; vec3 e = textureOffset(u_texture, texcoord, ivec2(0, 0)).rgb; vec3 f = textureOffset(u_texture, texcoord, ivec2(1, 0)).rgb; vec3 g = textureOffset(u_texture, texcoord, ivec2(-1, 1)).rgb; vec3 h = textureOffset(u_texture, texcoord, ivec2(0, 1)).rgb; vec3 i = textureOffset(u_texture, texcoord, ivec2(1, 1)).rgb; vec3 mnRGB = min(min(min(d, e), min(f, b)), h); vec3 mnRGB2 = min(mnRGB, min(min(a, c), min(g, i))); mnRGB += mnRGB2; vec3 mxRGB = max(max(max(d, e), max(f, b)), h); vec3 mxRGB2 = max(mxRGB, max(max(a, c), max(g, i))); mxRGB += mxRGB2; vec3 rcpMRGB = vec3(1) / mxRGB; vec3 ampRGB = clamp(min(mnRGB, 2.0 - mxRGB) * rcpMRGB, 0, 1); ampRGB = inversesqrt(ampRGB); float peak = 8.0 - 3.0 * u_sharpness; vec3 wRGB = -vec3(1) / (ampRGB * peak); vec3 rcpWeightRGB = vec3(1) / (1.0 + 4.0 * wRGB); vec3 window = (b + d) + (f + h); vec3 outColor = clamp((window * wRGB + e) * rcpWeightRGB, 0, 1); return outColor; } float mapColorComponent(float value) { float color = max(value, 0.0); color = pow(color, 1.0 / (u_gamma * 0.7)); // Increase gamma correction to make the image brighter color *= (u_brightness * 8); // Increase brightness to make the image brighter if (u_colorCurveBias != 0.0) { float reduced1 = 1.0 - pow(2.718282, -3.0 * color * color); color = mix(color, reduced1, u_colorCurveBias); } if (u_colorCorrectBias != 0.0) { float reduced2 = 1.0 - pow(2.718282, -u_colorCorrection * color); color = mix(color, reduced2, u_colorCorrectBias); } return color; } vec3 ditherColor(vec3 value, float strength) { vec2 tc = gl_FragCoord.xy / textureSize(u_noiseImage, 0); vec3 noiseColor = textureLod(u_noiseImage, tc, 0).rgb; value += (noiseColor - vec3(0.5)) * strength; return value; } vec3 applyTonemapping(vec3 color) { float A = 0.15; float B = 0.4; float C = 0.2; float D = 0.45; float E = 0.; float F = 0.6; return ((color * (A * color + C * + D * E) / (color * (A * color + + D * F)) - E / F; } void main() { vec3 color; if (u_sharpen != 0) { color = sharpen(var_TexCoord); } else { color = texture(u_texture, var_TexCoord).rgb; } if (u_ditherInput > 0) { color = ditherColor(color, -u_ditherInput); } color.r = mapColorComponent(color.r); color.g = mapColorComponent(color.g); color.b = mapColorComponent(color.b); color = applyTonemapping(color); if (u_desaturation != 0.0) { float luma = clamp(dot(vec3(0.2125, 0.7154, 0.0721), color.rgb), 0.0, 1.0); color = mix(color, vec3(luma), u_desaturation); } if (u_ditherOutput > 0) { color = ditherColor(color, u_ditherOutput); } draw_Color = vec4(color, 1); } And see how it changes those screenshots below? You can use reloadGLSLprograms command in game console to reload the .glsl file. On 9/25/2024 at 4:45 AM, MirceaKitsune said: On 9/27/2024 at 2:51 PM, MirceaKitsune said: You can also try replacing the fire particle with the stronger version: tdm_particles.mtr Spoiler arcturus_fire { qer_editorimage textures/particles/arcturus_fire.tga translucent noShadows nonsolid sort 10 // sort very late, so no translucent objects in the world draws over it { blend diffusemap map _white rgb 0 } { blend add map textures/particles/arcturus_fire.tga vertexColor } { blend gl_dst_color , gl_one map textures/particles/arcturus_fire.tga rgb 0.7 } } Turn bloom on and see how these look like (with the modified .glsl of course): On 10/17/2024 at 3:34 AM, MirceaKitsune said: Quote It's only a model...
MirceaKitsune Posted November 23 Report Posted November 23 (edited) I'll need to look into it for that FM. Need to prepare a bit to run a proper comparison. Saw the tone mapping and fire glow on Youtube, definitely hoping they can make it into vanilla. Edited November 23 by MirceaKitsune Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 23 Report Posted November 23 Don't know if it's a dumb idea or not, but I for one kinda like my steampunk neon signs. I'll probably mention them in the shop keeper's book, how neon signs are all the rage and everyone's buying them. Wish I could reskin more of the default models to get even more designs, was lucky it happened to work out with this one, even if the chain shining is a little meh. No custom assets needed, just the def and skin. If anyone else wants them here's the one for the sheep logo, easy to produce and customize the rest of them from there. decorative/signs/sign_half_round_neon_sheep_lit { model "models/darkmod/decorative/signs/sign_half_round_01.ase" "textures/darkmod/metal/flat/iron_rough_ns" "textures/darkmod/window/lamp_glass_lit_opaque_colorme" "sign_half_round_wine" "tdm_sign_shield_sheep" } decorative/signs/sign_half_round_neon_sheep_unlit { model "models/darkmod/decorative/signs/sign_half_round_01.ase" "textures/darkmod/metal/flat/iron_rough_ns" "textures/darkmod/window/lamp_glass_unlit_opaque_shadowcasting" "sign_half_round_wine" "tdm_sign_shield_sheep" } atdm:sign_neon_sheep { "inherit" "atdm:static_electric_light_lit_base" "editor_displayFolder" "Lights/Model Lights, Static/Switchable/Electric/Signs" "editor_usage" "Neon sign, sheep." "model" "models/darkmod/decorative/signs/sign_half_round_01.ase" "skin" "decorative/signs/sign_half_round_neon_sheep_lit" "skin_lit" "decorative/signs/sign_half_round_neon_sheep_lit" "skin_unlit" "decorative/signs/sign_half_round_neon_sheep_unlit" "_color" "0.5 0.5 0.5" "texture" "lights/biground1_squarelamp_snd" "s_shader" "light_flicker_104" "light_center" "0 0 -24" "light_radius" "128 128 128" "noshadows_lit" "1" } 1 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 23 Report Posted November 23 Neon Builder sign. Looks pretty good with the bright orange, kinda like molten iron which gets the point across. decorative/signs/sign_hanging_builder_symbol_neon_lit { model "models/darkmod/decorative/signs/hanging_builder_symbol.lwo" "tdm_hammer_small_bronze1" "textures/darkmod/window/lamp_glass_lit_opaque_colorme" } decorative/signs/sign_hanging_builder_symbol_neon_unlit { model "models/darkmod/decorative/signs/hanging_builder_symbol.lwo" "tdm_hammer_small_bronze1" "textures/darkmod/window/lamp_glass_unlit_opaque_shadowcasting" } atdm:hanging_builder_symbol { "inherit" "atdm:static_electric_light_lit_base" "editor_displayFolder" "Lights/Model Lights, Static/Switchable/Electric/Signs" "editor_usage" "Neon sign, hanging builder symbol." "model" "models/darkmod/decorative/signs/hanging_builder_symbol.lwo" "skin" "decorative/signs/sign_hanging_builder_symbol_neon_lit" "skin_lit" "decorative/signs/sign_hanging_builder_symbol_neon_lit" "skin_unlit" "decorative/signs/sign_hanging_builder_symbol_neon_unlit" "_color" "1 0.5 0" "texture" "lights/biground1_squarelamp_snd" "s_shader" "light_flicker_104" "light_center" "12 0 -32" "light_radius" "128 128 128" "noshadows_lit" "1" } 2 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 23 Report Posted November 23 Lit / unlit glass signs and neon anvil. They aren't perfect, but for something that adds a touch of cyberpunk to the steampunk I think they work pretty well. 1 Quote Mods: Builder Blocks minigame | Keypad | Disguises
MirceaKitsune Posted November 24 Report Posted November 24 Getting to try realtime reflective floors in practice. Took me well over an hour to figure it out but the setup for a complex shader is ridiculously simple, all you need to do is add a "mirrorRenderMap 256 256" with a "blend add" to any material. FPS is reduced a bit of course but no big deal in a closed space, I'll improve it from the lighting which I abused a bit in this scene. 2 Quote Mods: Builder Blocks minigame | Keypad | Disguises
Arcturus Posted November 24 Report Posted November 24 1 hour ago, MirceaKitsune said: Getting to try realtime reflective floors in practice. Took me well over an hour to figure it out but the setup for a complex shader is ridiculously simple, all you need to do is add a "mirrorRenderMap 256 256" with a "blend add" to any material. FPS is reduced a bit of course but no big deal in a closed space, I'll improve it from the lighting which I abused a bit in this scene. The 256 256 doesn't seem to do anything here, the reflection looks very sharp. Apparently rendering reflections at lower resolutions has been disabled: If I remember correctly, rendering mirrorRenderMap at lower resolutions used to help with performance but also had added benefit of nice blurry reflections. Which would probably look better on a floor like this. You can make it fainter by adding RGB 0.3 for example. 2 Quote It's only a model...
peter_spy Posted November 24 Report Posted November 24 (edited) IIRC, the lower-resolution mirror was more pixelated than blurry, but I'm not 100% sure about that Also just adding a mirrorRenderMap as blend add image stage looks super clean and artificial. You can create an image stage and use a texture with alpha, or make alpha from RGB channels of a texture (e.g. a specular map), so you can mask portions of a reflection. You can use it with diffuse and specular to create dirt, damage effects, etc. [Edit] Example: Also note that mirrorRenderMap ignores normalmaps, so it might be better to use cubemaps for that. That and performance reasons Edited November 24 by peter_spy Quote Artstation stuff
MirceaKitsune Posted November 24 Report Posted November 24 9 hours ago, Arcturus said: The 256 256 doesn't seem to do anything here, the reflection looks very sharp. Apparently rendering reflections at lower resolutions has been disabled: If I remember correctly, rendering mirrorRenderMap at lower resolutions used to help with performance but also had added benefit of nice blurry reflections. Which would probably look better on a floor like this. You can make it fainter by adding RGB 0.3 for example. Aha: I was wondering why it still looked sharp but thought it's just me. I tried "16 16" and noticed it doesn't do anything. Why disable a base shader feature though? I think it should be at the render resolution if you don't use any numbers, if you specify a custom render resolution that should work. If there's a good reason not to do it any more, the parameters should probably be removed as it makes no sense to have numbers that do nothing... though that would break existing materials, maybe have them optional? Quote Mods: Builder Blocks minigame | Keypad | Disguises
Arcturus Posted November 24 Report Posted November 24 8 hours ago, peter_spy said: IIRC, the lower-resolution mirror was more pixelated than blurry, but I'm not 100% sure about that Ok, maybe low res reflection itself didn't look so nice, but when paired with heathaze effect it looked nice. This one uses the heatHazeWithMaskAndBlur.vfp (in this case the stronger version that I made). Unfortunately it doesn't react to light at all. It's also very buggy. Spoiler // Author: STiFU textures/darkmod/stone/flat/marble_flower_mosaic_cracked { surftype15 description "tile" qer_editorimage textures/darkmod/stone/flat/marble_flower_mosaic_cracked_ed //specularmap textures/darkmod/stone/flat/marble_flower_mosaic_cracked_s bumpmap textures/darkmod/stone/flat/marble_flower_mosaic_cracked_local { fragmentProgram heatHazeWithMaskAndDepth.vfp fragmentMap 0 _currentRender fragmentMap 1 textures/darkmod/stone/flat/marble_flower_mosaic_cracked_local // the normal map for distortion fragmentMap 2 _white // the distortion blend map fragmentMap 3 _currentDepth } { blend add mirrorrendermap rgb 0.1 } { vertexProgram heatHazeWithMaskAndStrongerBlur.vfp vertexParm 0 0 // texture scrolling vertexParm 1 10 // magnitude of the distortion } { blend gl_one , gl_one map textures/darkmod/stone/flat/marble_flower_mosaic_cracked rgb 0.2 } } 2 1 Quote It's only a model...
MirceaKitsune Posted November 24 Report Posted November 24 (edited) If blurry reflections didn't look nice in all cases, why not just remove the resolution in the material definitions instead of disabling it globally so those who want them could still use those parameters? Makes more sense to allow a resolution of "mirrorRenderMap 0 0" to specify you want to use the screen resolution. I'd probably use it for those floors: Blurry resolution would look better, plus I gain a lot of FPS just for having it that way! Is there a good reason why it was disabled this way? In the meantime I'll likely give your material a try as the result clearly looks better: Thanks for sharing that! I was wondering if I could bend the reflection with the texture's normal map but didn't hope for a way. I'll definitely want to put the specular map back on as I don't want to lose its effect either. Edited November 24 by MirceaKitsune Quote Mods: Builder Blocks minigame | Keypad | Disguises
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.