Quake3World.com Forums
     Programming Discussion
        Shader Editor aka "How to make IDE"?


Post new topicReply to topic
Login | Profile | | FAQ | Search | IRC




Print view Previous topic | Next topic 
Topic Starter Topic: Shader Editor aka "How to make IDE"?

The hell good boy
The hell good boy
Joined: 22 Jun 2011
Posts: 1922
PostPosted: 06-05-2016 04:27 AM           Profile   Send private message  E-mail  Edit post Reply with quote


Hello. I am fan of Shader Editor, that is truly great tool for making shaders, but it's outdated and abandoned now and does not support new directives that came with new versions of q3map2. Plus it has DirectX renderer, that simply makes the shader preview slightly different from how it is shown in game. For instance the 3D view on shapes. It has about 100 times smaller ratio of deformVertexes effect and the Autosprite function does not operate correct.

So I decided to start making own Shader Editor. I want to inspire from Notepad++ which allows me to open multiple files in multiple tabs to one window, and to inspire from the last stable release of original Q3ASE (mainly the preview window, then shader tree). My goal would be make fully functional IDE that allows to edit shaders via the source code (with syntax highlighting), and the shader tree, which would allow to move entire shaders or stages (not the functions) up and down, and making new and deleting the selected ones. The IDE would be aimed to the code writing, the shader tree would be only to display and modify the rough structure of the script. Preview window would use OpenGL renderer instead of DirectX, which should allow me to make preview look more like the shader shown in game.

But there are problems - I am newbie to MS Visual Studio Community 2015. I tried to Google, what MDI Container is and how to use it, but without usable results. I found no usable and understandable results to my search question about syntax highlighting. I have no idea how to implement the renderer into the preview window, so there is a blank space in that window yet. I ended up with garbage that can't be called an IDE and that does not work at all. It only displays some kind of window with a text field and blank preview window that does not show up in the Task Panel and gets covered by the main window with the text field. The only one usable and really working thing is the "About" window, that displays the program's icon and few details about the program and author and has few links that point to the Shader Manual by obsidian and my e-mail address...

Simply I failed at all since I can't continue on my own only.

Does anybody know about MDI Conainers? Windows Forms? What they are and how they actually work? Also, I wanted to make the preview window dockable, but I have no idea how to do it :(

If I may, I'd like to at least show sketch of how the IDE should look like and try to give details on how it should actually work. If there is any good will and is so good to give me a help hand, I'll definitely include him to credits.

Looks like this is something I can't do everything on my own only and I need such band of creators that would be willing to make the program with me. Sadly, there are no such crazees around me, that would actually help with this project :(

I know it sounds dumb, but I have no other option than ask you to make a band that would create this thing. At least that world wide. The source code hostile would be GitHub...



_________________
[ Websites | Facebook | Twitter | YouTube | Instagram ]
When you feel the worst, turn to the sun and all the shadows will fall behind you.” - John Lennon


Top
                 

Trainee
Trainee
Joined: 25 May 2016
Posts: 41
PostPosted: 08-28-2016 12:44 PM           Profile Send private message  E-mail  Edit post Reply with quote


Boy is this necessary. Q3ase is invaluable, but clearly obsolete, buggy and has to be tricked into being useful at this point. Wish I could proffer mad coding skillz, but that's not where I am, sadly. Happy to be a tester, FWIW. Have you talked with Burt Peers?

Seems pretty dead around here, so don't be too bummed at the lack of response; I don't see burning threads on some other topic.

Texture editing is a real weak spot in radiant IMHO. The surface inspector isn't great, the Patch Properties/Inspector is nuts (and woefully under-documented), and the shader inspector doesn't exist. Shift clicking on a shader in the texture window is the only real nod shaders get in-editor. Okay, the white outline and flush and reload. Heh.

Ironically, the frustration of having to code shaders the old-fashioned way inspires non-programmers to pick up programming so they won't have to code shaders anymore! LOL! I guess the real programmers don't mind a little shader coding, so they lack the motivation. Who says irony is dead?

If you're still tinkering with this, post an update. Maybe the collaborators you're looking for just need some inspiration.




Top
                 

I'm the dude!
I'm the dude!
Joined: 04 Feb 2002
Posts: 12498
PostPosted: 09-15-2016 08:55 AM           Profile Send private message  E-mail  Edit post Reply with quote


Other than the fact that shaders have little curly braces { and }, shaders have zero to do with programming. It's easier to think of them as just a list of options you want your surface and textures to have. The curly braces just denote where the shader or texture begins and ends. Shaders are not any more complicated than that and you certainly don't need a programming background to use them. id Software created shaders for Q3 specifically so the artists who had no programming experience could generate interesting effects without bothering the programming team.

The only useful thing that Q3ASE does is that it allows you to visualize some of the blend functions and waveforms, but you can do that almost as easily by alt-tabbing out of Q3, making a change in your text editor, then reloading the map in Q3 (in fact, that's generally what I do). Or just use Q3ASE as is and copy those values into your shader.

I agree that some of the features could be better improved in GtkRadiant, but those features require significant developer time, and without a wealth of available programmers, this probably won't happen. Due to this, the current GtkRadiant goal is to work on stability and support for popular games, not on new features. So rather than dedicating time to building a completely new shader editor, it might be better to direct whatever available programmers to GtkRadiant itself.



_________________
GtkRadiant | Q3Map2 | Shader Manual


Top
                 

The hell good boy
The hell good boy
Joined: 22 Jun 2011
Posts: 1922
PostPosted: 09-27-2016 08:32 AM           Profile   Send private message  E-mail  Edit post Reply with quote


Hello after some longer break. Yes, You are right that such project needs really large programming team and such project can't consist of just one file but have to be built with numerous other each dependent DLL files libraries that the main application should be dependent. That should include also the OpenGL renderer. I never said that GtkRadiant Team should do some Shader Editor (even when it would be great), but I said I really realised that such project like Shader Editor really needs many people to participate so I wrote this question if someone is willing to help in any way. Looks like there is (almost) nobody who wants to participate. That's not any bad, I won't force anyone, so just another cancelled project. It might be a text-editor based IDE that could "visualise" the shader code. Anyway, it's not neccessary to actually build something like that for someone who can visualise the shader in his head (or do tweaking in game)...



_________________
[ Websites | Facebook | Twitter | YouTube | Instagram ]
When you feel the worst, turn to the sun and all the shadows will fall behind you.” - John Lennon


Top
                 
Quake3World.com | Forum Index | Programming Discussion


Post new topic Reply to topic


cron
Quake3World.com
© ZeniMax. Zenimax, QUAKE III ARENA, Id Software and associated trademarks are trademarks of the ZeniMax group of companies. All rights reserved.
This is an unofficial fan website without any affiliation with or endorsement by ZeniMax.
All views and opinions expressed are those of the author.