Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dedicated shader editor #26229

Closed
Overblob opened this issue Feb 24, 2019 · 4 comments
Closed

Dedicated shader editor #26229

Overblob opened this issue Feb 24, 2019 · 4 comments

Comments

@Overblob
Copy link
Contributor

Overblob commented Feb 24, 2019

This enhancement proposal is linked to #8069 (and could solve #8746)
However it's not a duplicate since I would like to outline usability problems that Godot users may encounter today (based on personal experience).
I also wanted to keep track here on some IRC comments about this subject.

To put it one way: Godot's shader editor is not user friendly.

I think the bottom panel isn't appropriate for code editing, mainly for 2 reasons:

  1. The bottom panel is context reactive and autocloses itself as soon as you click another node. It forces you to reopen it either by opening again the shader file, or by finding it again in the inspector and click the button.

  2. Its height, while more viable for visual shaders, is inconvenient for code, which inherently has a vertical layout. And keeping scrolling to find your code is quiet annoying. Okay, you can expand it to occupy the full size of the viewport, but doing so you cannot visualize the shader output anymore.

Being able to see live the results of your shader is too much important to be conceded.

Those issues are kind of flow killers and should be addressed to let better shader coding experience in Godot.

For this I think that shader editor plugins should be implemented as main editor plugins (ie. with 2D, 3D, Script and AssetLib).
The idea is to take advantage of widescreens to have rather a horizontal layout for code and preview (with horizontal resizing).

For example:
proposal

It could be also useful to add default shapes/meshes to enable quick prototyping:
proposal_quad

proposal_sphere

I quickly discussed theses features earlier with some contributors on IRC.
It had been mentionned that we could benefit from ScriptTextEditor (Gdscript editor layout and functionalities) to keep shader files context and to be able to edit multiple shader files in parallel.
It also had been said that such reworks could/should have to wait for Godot 4.0 for an inspector rework and multi-window support.

I'm not sure if all of this should be implemented at once and thus wait for Godot 4.0. There's maybe other clever ideas or some commitments that could help having such enhancement before.
But well, I wanted to outline at least those proposals. :)

@Chaosus
Copy link
Member

Chaosus commented Jun 28, 2019

The interesting design idea is to merge visual shader and visual script into one dedicated tab "Visual"

@dreamsComeTrue
Copy link
Contributor

The interesting design idea is to merge visual shader and visual script into one dedicated tab "Visual"

yeah baby - let's go with that :D

@nathanfranke
Copy link
Contributor

We should make the "Shader" button invisible until you open a shader file. Then it becomes visible until you close all open shaders. This would keep the top bar simple

@clayjohn
Copy link
Member

Feature and improvement proposals for the Godot Engine are now being discussed and reviewed in a dedicated Godot Improvement Proposals (GIP) (godotengine/godot-proposals) issue tracker. The GIP tracker has a detailed issue template designed so that proposals include all the relevant information to start a productive discussion and help the community assess the validity of the proposal for the engine.

The main (godotengine/godot) tracker is now solely dedicated to bug reports and Pull Requests, enabling contributors to have a better focus on bug fixing work. Therefore, we are now closing all older feature proposals on the main issue tracker.

If you are interested in this feature proposal, please open a new proposal on the GIP tracker following the given issue template (after checking that it doesn't exist already). Be sure to reference this closed issue if it includes any relevant discussion (which you are also encouraged to summarize in the new proposal). Thanks in advance!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants