Enhanced Texture Browser for Radiant 1.5


(Shaderman) #1

This is what I’m currently working on (instead of finishing the Arado plane model or some of the maps I’ve started in the past :D). It’s one of a thousand ideas I have and hopefully a project which I’ll finish some day :slight_smile:

My goal is to achieve a better handling of textures in Radiant. I never liked the way it works in current versions because it’s too long winded to search and select textures from the textures menu and the texture viewer. This is my approach to make mapper’s life a bit easier. I’m not a good programmer but it looks like my crappy code works here and there without crashing Radiant hard :stuck_out_tongue:

Finally some screenshots:

It’s possible to switch between the old and new texture browser in the preferences:

A small button in the toolbar to open the texture viewer with the mouse:

And this is the new texture browser with faster access to textures and shaders through a treeview widget:

The same with .wad files (Quake 1 uses them for example):

I still have to fix some things and clean up the code before I’ll send a patch to the Radiant mailing list. Maybe it gets into Radiant some day.

Do you have ideas or suggestions I should include?


(psyco_mario) #2

looks good!

Maybe sort textures into catagories?
e.g.
Stone
Wood
Grass
ect?

I dont mean have you do it all, that would be harsh, but allow the user to sort it, and maybe save it to a external file? (so people can post them here for lazy people (like me! :P) :clap: )

or maybe a search function?
so you could search for ‘stone’ and get all textures with stone in name! :smiley:


(Bravo) #3

Might be useful to have all textures on display via a scrolled thumbnail view in a seperate window that you can maximise etc, ie as if you were looking at an ordinary file full of pictures with the option set to ‘thumbnail’.

Also might be useful for a user ‘palette’ with a selection of textures that the user can add to the palette whatever texture he or she wants, so that frequently used textures are more easily accesible. Maybe also an import/export feature of differing palettes.
Right click a texture in the thumbnail view>add to palette>Palette a, palette b etc

As posted previously, I dont really know much about Radiant, so these features might already be there, but they popped in my head when I read your post, so I posted em


(psyco_mario) #4

Ooh!

A option to select what pk3/pk3s to load textures out of!


(Diego) #5

I was under the impression that their were some commonly used features from older versions of radient missing in version 1.5. So I have only been using version 1.4. Will this work with the older version?


(DerSaidin) #6

I’d like to be able to find texture’s paths and path of the shader easier.

Perhaps a right click > properties option for textures that gives that information. You could also have grouping options there to load up stone or brick or cement or wahtever.

With the catagories, perhaps along with the extenal file as psycho mario suggested, when it opens shaders it reads them for comment like
//group: stone
So you can add groups to shaders.


(Shaderman) #7

Nice idea (which I had myself, too :D) but I guess that’s one step too far at the moment and requires much more effort than these basic changes I make at the moment. First I’d like to know that my work is accepted by the Radiant dev team before I’ll probably go on with more options like grouping textures which will never be available for the community :slight_smile:

I dont mean have you do it all, that would be harsh, but allow the user to sort it, and maybe save it to a external file? (so people can post them here for lazy people (like me! :P)

That’s right. I guess I would be too lazy myself to sort around 500-600 textures, instead I’d try to build a XML based solution so that others could sort it out :slight_smile:

or maybe a search function?
so you could search for ‘stone’ and get all textures with stone in name! :smiley:

I’ll put that on my wish-list. There’s a basic search function already if you have “texture subsets” enabled which works for the current texture set but not for all available textures.

I’m not sure about this idea because
a) it might need too much memory to display hundrets of textures (even if they’re shrinked to thumbnails)
b) I think lots of textures would lose too much detail when they’re shrunk to be identified

Also might be useful for a user ‘palette’ with a selection of textures that the user can add to the palette whatever texture he or she wants, so that frequently used textures are more easily accesible.

Hmmm. If you work on a map and have textures or shaders in use, you see them all by hitting “hide unused”. That’s almost what you suggested. I think your palette idea complies (more or less) the grouping idea :slight_smile:

Are you thinking about hiding custom pk3 files? I only worked on Q3 based games with Radiant so far where it’s suggested to use a clean installation for mapping. I think it would be definitely the wrong way to bypass this rule because it might cause other errors if someone has custom pk3 files in his mapping folder :slight_smile:

Same here. I still use 1.4 because some important things are still missing. SPoG has been working on the bobtoolz for example and I assume they will be available with the next release. I think this could be the point where I start using 1.5 :wink:

Will this work with the older version?

No. AFAIK versions < 1.5 won’t be changed anymore. The source code for 1.5 is available which allows everyone to make changes and additions.


(Shaderman) #8

You know that the path for a selected texture or shader is shown in the status bar?

You could also have grouping options there to load up stone or brick or cement or wahtever.

Good idea IMO. Ok, let’s say there was this grouping function mentioned above and you would see the categories in a treeview (like in the last picture I posted above), it would be really nice to load a selected tree with something like RMB --> “show complete tree”.

With the catagories, perhaps along with the extenal file as psycho mario suggested, when it opens shaders it reads them for comment like
//group: stone
So you can add groups to shaders.

Nice idea, too but I don’t like one thing. If you want to group stock shaders of a game, you’d have to modify original files which isn’t a good solution IMO. I’m thinking of something like a XML “table” where texture/shader paths and names are mapped into a group. This wouldn’t require changes to any files because the information about the assignment would be stored in a separate file :wink:


(Lanz) #9

One function I would love to see is: select a face of a brush, right click and select “last used textures” that just brings up a sub menu with the 5-10 last used textures for quick selection.


(DerSaidin) #10

I know it has the shader there, but not the file.

You’d use the XML table WITH the comment thing. If its already in the table - great. If not then the comment can sort it into the table.


(=SC=Beef) #11

great work, gimmie!
>.<
Good ideas too


(Shaderman) #12

I like this idea Lanz, but I guess that’s too deep for me :slight_smile:

At the moment I’m working on a “higher level” where I don’t have to care about the files themselves - I can’t say how hard it would be to get the filename for a shader from this level. Maybe I’ll have a look at it sometime.

You’d use the XML table WITH the comment thing. If its already in the table - great. If not then the comment can sort it into the table.

You wouldn’t have to touch the original shaders but one could optionally group custom shaders - good idea :slight_smile:


(EB) #13

yes, yes, brilliant ideas and work… :clap:


(psyco_mario) #14

Maybe a function so if you press Ctrl+T for example, it would texture the selected faces with the last used texture?

(i would love this feature)


(DerSaidin) #15

With the recent texture list, Imo they shouldn’t just have the texture, but also have the projection properties.
eg. when you middle click another brush and take the texure from that it also takes the projection properties.

Because when your working you tend to try to keep the same texture positioning etc. So the recent textures list would then be easier to get matching textures.


(Shaderman) #16

Sorry psyco_mario and Der’saidin but I’m not planning to work into the 3d window code at this point which IMO would be required for your suggestions.


(psyco_mario) #17

ok :slight_smile:

But, could you maybe do something like the last used texture stays selected, and if you press t (for example) it would use it?

if not, no problem


(Shaderman) #18

I would need to get deeper into the code for this, too :slight_smile: I’ll put all ideas on a list and see what else I can do.

I think i’ve finished this first part and will submit a patch to the Radiant mailing list tonight. I hope to get some (positive) response from the Radiant developers soon. Thanks to kiro for a new toolbar icon (updated the first post) and my new avatar image!

The next thing I’ll work on will be texture grouping. I hope I can realize it :slight_smile:


(psyco_mario) #19

lol!

nice avatur by the way :wink:


(Shaderman) #20

Thanks to thore :wink:

Here’s a small update after some weeks.

I’m currently working on a search function for textures and shaders (using tags). I’ll first try to explain how it works and give some details afterwards.

I think mappers know the problem. You’re searching a texture or shader which you’ve seen in a map. Let’s search this window shader for example:

Do you know where it’s located? Is it in mp/mp_goldrush or maybe egypt/egypt_windows_sd or…? I would need some tries to locate it :slight_smile:

That’s what I’m trying to make easier with a search function for tags. (The following images will/might change when this project is done):

You have some information about the texture/shader you’re searching:

  • it’s a window
  • it’s used in goldrush
  • it’s lit

Use this information in the search field (1). Type in “map:goldrush window lit” and hit OK (2) to get the result: All textures/shaders from goldrush with the tags window and lit assigned will be shown - life can be so easy :stuck_out_tongue:

I still have to change the tree view (3) on the left which will allow to navigate through tags you’ve entered in the search field (I’ll have to explain that with some images when I’m working on that part).

But how are those tags assigned to shaders/textures? Let’s have a look at the following image:

This is the Texture Browser you’ll usually see (if you don’t want to change tags). There’s the search field on the top and an expander on the bottom. Now let’s say you’d like to change the tags of the texture egypt/egypt_floor_sd/afloor_m02. Select it with RMB (there’s a blue border around the image now) and the expander will open (the expander can be closed either by clicking somewhere in the texture viewer or on [-] beneath the line “Texture Grouping” with LMB).

Now you see the tags which are currently assigned to the shader/texture you’ve selected above and you’re able to add/rename/delete tags by using RMB on the “Available Tags” view. The “Available Tags” view shows all used tags minus the assigned tags of all textures/shaders together. You can now add (4) or remove (5) tags from a shader/texture by clicking on the buttons in the middle (drag and drop may follow).

The tag information is stored in a XML file which is human readable and properly indented to allow modifications (in a XML editor for example) if someone needs to… I’m currently planning to release a XML file for ET which includes the map and (hopefully) a useful tag assignment. This modification is planned to work for all Q3 based games at least and allows the exchange of XML tag files. I won’t build XML files for other Q3 based games but these Radiant code changes should allow it everyone to build a suitable file for any (Q3 based game) which could be shared over the internet.

There’s still a lot to do for me and not too late to factor in suggestions… :smiley:

Shaderman