Higher-resolution lightmaps?


#21

@quirkychirps Uh, oh, damned! A lot of time has passed since I did the re-mapping for q3dm6. So I’m really sorry, I can’t remember what I exactly did! Even more worse, meantime I tried to upgrade to Win 10 which destroyed my HDD, so most of the work was lost!

Anyways, what I can still remember:

  1. It was a remapping project I made (maps from scratch), not a re-texturing project (you can see this on the 2nd screenshot I posted above, I use patch meshes for the light trim for example).
  2. The textures had a size of 2048x2048.
  3. The textures was tweaked with photoshop (.tga) but converted to .dds format (which decreases loading times a lot).
  4. Iirc I used normalmaps (bumpmapping) for nearly every texture, only for a few textures I used parallax mapping. When using parallax mapping don’t raise the height too much, the texture will get smeared. So personally I decided to use bump-mapping for every ‘roughness’ for ~1-2 cm. For every roughness of more than 2 cm - 4 cm I used parallax mapping, and everything above 4 cm I made it a real ‘roughness’. I mean I draw a polygon for it (either by the geometry brush, or by the map model. Doom 3 uses other values, even ‘deep bumps’ are made by bump maps. Thats why Doom3 looks weird when you see walls etc. from a very steep angle).
  5. In any case I simply used all shaders with the values as described in the opengl2 README file https://github.com/ioquake/ioq3/blob/master/opengl2-readme.md.
  6. Afterwards I had to tweak the shader a bit, but the result was outstanding! Really! I was so impressed that personally I thought that the maps even look better than UT3 or other games of this time period!
  7. As already said, converting TGA textures to DDS texture format was essential (do converting them to DDS afterwards, never do the actual texture work in DDS).
    For example loading a very detailed q3dm6 map (with less brush count, but many, many more models took me 27 secs, when using TGA textures, using the same textures converted into DDS, it took me 11 secs (and this was done on a machine from 2009!).
  8. Even with the maps and textures still available on my old HDD I stopped working on making maps for renderer2 because:
    A. I was told, and also realized to myself, there was not really much interest in making new maps for ioquake3 those days.
    B. I ran into a very strange problem: Even if I still think that opengl2 is the best idtech3 renderer I ever saw (yes even ‘better’ than Xreal) it has one very huge ‘neck-breaking’ problem: you can either use the very well lit sunlight and shadows for outdoor areas (which look really amazing), and/or you can use the old way of lightmapping for indoor areas. As experienced mapper, you will remember that Q3A never had detailed map shadows (even when using ydnar’s q3map2 techniques, shadows are either very blurry, or very jagged!)
    This is because there is no real time lightning/shadowing! At least I never found a good mix of using lighmaps and sunlight. Probably the best thing is to first decide if you want to make maps using r_sunlightMode 1 or 2, the maps look definitely different when using 1 or 2 (see the Opengl2 README for more details).
    Than, after you decided what value to choose, be aware that outdoors there is always ‘summer’ and there is no ‘cloudy or rainy day’, which means you always have relative sharp shadows. On the other hand, you’ll never have accurate shadows indoors (as you know from Doom 3 or Xreal). That is because lighmaps are used (normally) with all the bouncing sunlight from Q3A default lightning. If you are interested in really nice looking maps you will know what I mean. The good thing is most Q3 players are not interested in beautiful maps, they are even turn off textures at all, to play with 500 FPS or so…, so probably maps don’t have to be that good at all, I don’t know! So why is this a problem after all than? Well, when making textures/maps it’s really hard to get good results when you don’t really know what lightning/shadowing you will apply to them! At least for me this was the hardest thing, sometimes the texures/indoor areas were too bright (without (Doom 3 like) real-time shadows) than they were too dark…
    Well, after all I wish you good luck to find a good way to lighmap/shadow your map, at least as long as you are also a pedantic map-maker (like me). If you only want to have textures with higher resolution and bump/parallax mapping than follow the Opengl2 README.

Ah, and something important at the end, it seems since 2015 the opengl2 renderer changed a lot concerning specular mapping (bump/parallax mapping?)! See this thread: Change to specular maps?
I don’t work for opengl2 atm, and I only reacted on your question because you directly asked me, so probably I’m completely out of date!
The most active and professional opengl2 user I know is ‘AndehX’, maybe ask him about bump/parallax mapping. Nevertheless, I can confirm the things he said about opengl2 renderer nowadays…

And another small hint: don’t use multilayered textures for you re-texturing project, they won’t work! Or use this patch: https://bugzilla.icculus.org/show_bug.cgi?id=6058, than multilayered texures will work correctly, blended terrain still NOT!

Well, sorry that I can’t really help you with all this stuff, I know how hard this is!

EDIT: Yes, a comrade of mine said it was a black and white image, but not like a specular map with all the details, instead it was a very raw, or basic texture drawn in black and withe! It was possible to do parrallax mapping and bump mapping with two different textures at the same time (shader)! Btw. I was told that I used code/texture from urt_bumpy(?) https://code.google.com/archive/p/urt-bumpy-engine/source/default/source bump mapping).
Tbh, I can’t confirm all this, but it might be correct!


#22

Thanks for getting back to me so quick, and sorry to hear you lost all of your work - it’s a damned frustrating thing to happen.

  1. I’m remapping q3dm2 as well, because the lighting in game was doing funny things to the new textures I made - and also I wanted to add more geometric detail.
  2. I didn’t realise q3 could handle textures that big! I’ve been re-making the textures 400% bigger than the q3 originals with a limit on 1024x1024.
  3. I’ve just been saving my textures as .png - does dds/tga offer any advantages? Aside from the dds loading faster of course.
  4. My bump maps just look plain wrong - it seems to be that the lighting has to be juuuuust right for it to look good in game. Too much light and the bump map has no effect at all - too little light and the bump map looks black with white bubbles and lumps all over (hence why i wanted to give parallax a try)
  5. So far I’ve just been doing the textures with the _nh. and _s. and leaving them in my PK3 without a shader script as the engine pulls them automatically - in the readme it shows examples of how to write the shader scrips for the stage mapping - does that work better than the before mentioned just adding them in the pk3 with the suffix changes or will it just be the same?
  6. I’m glad you got good results - that’s what we are working towards right?
  7. true, it is annoying but that’s why I’m trying this out -wouldn’t it be great if all the work that everyone has done over the years on ioq3 can finally have a 'poster" so to speak who knows it may garner some new attention for being so shiny and pretty!
    I haven’t used any sun things in gtk - I’ve just put really bright lights ~30000 or so reasonably high off the map. and I don’t see why - when the opengl2 was being made they took heaps of code from xreal, but no real time lighting :confused:
    pedantic is my middle name - though its frustrating when putting in so much time and to get results that look half baked…

And thank you - you’ve been a great help, ill hit him up about it. multilayered textures? like decals or?


#23

Yeah remaking q3dm2 is cool, I remember that I spent more than 2 month only for the pentagramm trim over the bridge area, ending up to create a new hi-poly model for it, however, q3dm2 is a real cool map.

About DDS, well DDS has mainly 2 advantages, 1. they load faster, 2. they need less VRAM. So nothing you will visually notice, but its more about saving load times and RAM. Best to use TGA or PNG for alpha masked textures, DDS for nearly every other texture. Some textures don’t convert to DDS well, they will show some artefacts, but hey, you still have the source (hopefully) so you still can use TGA or PNG if DDS doesn’t work for a specific texture. Anyways, I highly recommend them, I remember that I ran into memory problems when using too much TGA/PNG textures in a map, with DDS everything was okay.

You will get better results when using shaders as mentioned in the opengl2 README. Start with simple shaders/mtr and tweak them to get used to it, as already said especially the height of the parallax effect should be adjusted (via shader) depending on the texture.

About the multilayerd textures: probably I didn’t say it correctly, multilayered textures work in the sense that you can use it of course, but there is no way to get them working correct when they are lit by dynamic lights.
As an amateur I think the problem is that only one layer receives dynamic light, other layers will not receive light, they are drawn darker (without light). I don’t have the technical insight, if there would be a way to fix this (via shader stage), at least I don’t know of any shader stage that can fix this. Here you can see screenshots of the issue: https://bugzilla-attachments.icculus.org/attachment.cgi?id=3397.
So, maybe its more correct to say you CAN use it, but either turn of dynamic lightning, to not see the issue, or avoid using multilayered textures, or apply the patch from Eugene C. The patch solves the problem of multilayered textures (as shown at the screenshot), but the patch does NOT solve the problem of terrain where alpha masked textures are blended onto the terrain, so you are correct yes, the decals on terrain does still not work well even with the patch.

The unfinishedness of porting Xreal over into opengl2 is definitely the only drawback. We need a coder that is maintain/updating the missing pieces of Xreal code. A coder capable to merge the lightning/shadowing code from Xreal into opengl2. I’m no programmer but I think all the magic happens in the tr_backend c file in the renderer source code (RB_RenderInteractions/RB_RenderInteractionsShadowMapped). This would give us the real time lights and the shadows from Xreal.

If you know a programmer who is capable and willingly of doing this let me know :drooling_face:


#24

Finally sorted the normal maps out, turns out all I had to do was make the base layer of the texture semi-translucent. And then to minimise the artefacts I just gaussian blurred the normal map over the alpha and viola!
I just wanted to do DM2 because its a nice neat small map - and I thought with a high res lightmap the pentagram ceiling room would look great casting into the water.

I will give the shader thing a try, the reason I haven’t so far is because I still haven’t looked up how to set it up with gtk - usually just wing things until I find out how they work - though I have edited existing shader scripts - but they were for the original q3, not my custom ones.

And sorry that’s all gibberish to me - I cant even wrap my head around setting up the workspace to start changing code :joy: and if I come across anyone ill certainly harass them until they give in to our xreal-dilemma demands.


#25

WOW! Your textres look cool! I like them! Keep on working, I think you are on the right way!
The only thing I would ‘complain’ about is, I think you haven’t enabled anisotropic filtertering :smiley:
No, I’m joking of course that’s no problem, but try it out eventually. Textures get much more accurate and sharp when enabled. Bring down the console and set r_ext_texture_filter_anisotropic to 1, and also set r_ext_max_anisotropy to a value of your choice (16 is max, and 16 is the best imo).
In short: anisotropic filtering avoids textures from getting blurry if you see them on a very steep angle, you can see that on the first screenshot the texture isn’t sharp because you see the stone wall from a very steep angle.

Anyways, I hope you will release your work and don’t give up!


#26

Why thank you - this is my third attempt - but so far thanks to all the helpful answers to my ditsy queries on this most holy of sites I’ve actually made some recognisable progress, I certainly hope to keep working on it that’s for sure.

Indeed I didn’t enable either of those, must have skimmed over them in the gl2 readme (I just tried them both and they have a significant drawback on performance :confused:

it will release q3dm2, it just might take a few more weeks before I’m happy with the textures (still have to make about 20 more with bump and spec maps (and still haven’t managed to get a shader/mtr file working for my scripts yet - I think ill just give that one up though) and I have to sort the high res lightmap (I’m already having nightmares about it)

I have to re-do this tile texture because it looks way too blurry - but look at the lovely bloody mess!