(Re)Texturing project, anyone?

Probably through my own lack of effort, I don’t think most people know what the opengl2 renderer is capable of:

So, since no-one asked, I’ve decided to try making a few textures here and there. Now this isn’t a proper retexturing project, as I have no plans on making the new textures slavishly accurate to the old ones. Instead, I plan on making a few nice textures here and there to demonstrate the use of OpenGL2’s abilities, as well as for my own and anyone else’s use in any other project.

Currently I’ve only done two textures, base_floor/tilefloor7 and organics/dirt, but I’ll update the pack as I make new ones.

This require the latest version of ioquake3, the opengl2 renderer, Quake 3 (of course), and enabling certain cvars in the console, namely r_pbr (which I really need to document :slight_smile: ), r_parallaxMapping, and r_cubeMapping.

Anyhoo, current pack is here: http://smiletheory.ioquake3.org/gl2_tex.pk3 , and I release this under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/


Your texture looks nice, no doubt, you did a great job! And I don’t mean only the textures, I mean the whole new renderer you made for ioquake3 is a solid piece of work! The renderer is really very stable and has some nice features!
Anyways, a (re)texturing project eventually involves editing shaders (depending on texture).
As long as I don’t know how to bypass (or fix) this issue: https://bugzilla.icculus.org/show_bug.cgi?id=6058 I’m not really interested to HACK this issue away by creating stupid shaders or only use single-layered textures!
Not all texture/model/sound artists are programmers! This specific issue for example was one reason why I lost interest in making new shaders/textures. This does NOT mean your renderer is bad, it means, for unskilled programmers (like me) it’s hard to fix such issues without help.
Although I assume some people will hammer on me now, I highly recommend to first ‘finalize’ the renderer, it would be more inviting for artists with less renderer programming skills. Just some thoughts/feedback, sorry if I hurt someone’s heart…

Wow this looks really nice !

I don’t have a clean and recent ioQ3 build around, and I’ld like to see how your ground tiles’s reflections behave in action. making a gif or a quick video would be awesome.

Congrats on making the parallax look right ! if you run down the forums, you’ll find a “screenshots” thread where I posted some tests, but it always looked akward …
Maybe an admin can move your post to this thread ?

Can you copy-paste the .mtr shader here ?

Thanks for the hard work :smiley:

I am an admin. :smiley: Well, a moderator, anyway. And really I’d like to keep this post separate and up-front for visibility, in case anyone wants to offer help making textures (hint, hint. :slight_smile: )

There actually isn’t a .mtr shader in this case. These textures are using the automatic image finding functionality in OpenGL2, where when a diffuse texture is loaded, textures ending with _nh and _s are loaded as normal/specular.

I have an old light all shader from an older version of GL2 that brings in all the lights and lights everything “properly”. I say it like that because there is probably bugs in it since it is surrounded in ifdef hell but it also does all of the spinning,stretching, and scroilling in the vert shader. My initial objective was to eventually bring in all q3shader stages into it and do everything at once on the GPU.

The shader code is 430 however and relys on bindless texturing. It also brings all of the data in through 2 ubos.

IOQuake3 has been a playground for me for years so Don’t mind the mess. Maybe this can help James out and then maybe not. To get the shaders to work right though… expect to hack tr_shader.c to pieces but as long as it would work for all the old shaders then personally I am cool with that. The idea is to get people to use mtr files anyways.

EDIT: I also didn’t have normalmapping or specular lighting in mind either. So those were quite broken at that time.





Sorry for the gravedigging, just wanted to say that i would be interested in doing a retexturing effort using the gl2 features.

The previous days I was fiddling around with the new renderer and materials that support the rend2 features.
However, some things are not clear to me yet.

For example:

  1. Do Specular Maps only work with PBR and cubemapping enabled?
    I did only see a visual change of my new texture (with specular map) when I activated r_cubemapping.

  2. Could someone (f.e @SmileTheory) provide examples of material shaders that are using the new rend2 features?
    I’ve tried the approach that SmileTheory used with the gl2_tex package (no shader file, but the corresponding maps) but as you can see with this post I am running in a couple minor problems which leads me to question 3.

  3. Are certain rend2 features buggy or not working at all at the moment? At least SSAO seems to be buggy, anything else that I should be aware of?

nevermind, right in the starterpost it is mentioned that cubemapping is also required :wink: but some more examples of shader files would be interesting…

1 Like

Yes, shader examples for the GL2 renderer would be amazing.

1 Like

Indeed, i would like to see such shader examples too! :slight_smile:

I have asked SmileTheory on IRC and there are already two examples in the opengl2 readme: https://github.com/ioquake/ioq3/blob/master/opengl2-readme.md#materials

More examples (and described) would be probably still interesting, however, with the pk3 file in the starter post and the informations from the readme there should be enough informations available to start on textures for opengl2…

1 Like

Thanks for the info hanky, this should help :slight_smile:

@SmileTheory absolute fan of your renderer! Have been remaking heaps of the q3a textures with normal and/or spec maps to suit - though i seem to have hit an issue regarding see-through textures… I’m using png files for all and so far all of them that have see-through bits appear in game as just black. I’ve been using gimp and exporting the png’s so they keep their opaque parts intact when saved. Is there any way around this like writing the scripts in the MTR files i made? I’ve tried that but so far no results - is there specific script lines i need? And if you have them would be great - thanks!


great, I think I will give a try as soon as i’m back from work!