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

Standardize names for the rendering methods / renderers #10139

Open
tetrapod00 opened this issue Oct 25, 2024 · 4 comments · May be fixed by godotengine/godot#98747
Open

Standardize names for the rendering methods / renderers #10139

tetrapod00 opened this issue Oct 25, 2024 · 4 comments · May be fixed by godotengine/godot#98747

Comments

@tetrapod00
Copy link
Contributor

tetrapod00 commented Oct 25, 2024

Your Godot version:
4.4 dev
Issue description:
This issue mostly affects the docs, but there may be a few in-engine error and description also affected. Note that this is not proposing changes to any engine code, only docs and potentially some user-facing engine strings.

The naming of the rendering methods / renderers is currently nonstandardized in two ways:

  • Renderers are called both "rendering methods" and "renderers", and occasionally "rendering backends". I believe "rendering method" and "rendering backend" are used internally. "Renderer" is used more often in user-facing docs.
  • There are multiple names for each renderer:
    • Forward+ is called "Forward+", "Forward Plus", or sometimes "Clustered Forward".
    • Forward Mobile is called "Mobile" and "Forward Mobile".
    • Compatibility is called "Compatibility" and "GL Compatibility".

These two nonstandard terms are multiplicative. There are instances of "Forward+ renderer", "Forward+ rendering method", and "Forward Plus rendering backend".

Proposal:
Standardize on the following:

  • Use "renderer" to describe a renderer or rendering method in most user-facing docs. Use "rendering method" whenever needed (for example, it's called a "rendering method" internally and it is exposed to the project settings as a "rendering method"). In pages which describe what a renderer is, mention that they are sometimes called "rendering methods".
  • In almost all cases, use the renderer names which appear in the editor itself: "Forward+", "Mobile", and "Compatibility".
    • Use Forward+ in all user-facing docs. In some cases, use "Forward Plus", "forward_plus", etc, if + is not a valid symbol.
    • Use Mobile.
      • I don't mind "Forward Mobile" either, but "Mobile" is already reasonably standard and is what it's displayed as in-engine.
    • Use Compatibility in all user-facing docs. Use "GL Compatibility" or "gl_compatibility" only when the engine itself requires it - for example, the rendering method string is "gl_compatibility", not "compatibility".

"Renderer" is used over the alternatives because it is shorter.
The names for the renderers are used over the alternatives because those are the names always visible in the editor in the upper-right corner.

URL to the documentation page (if already existing):
Many places in the manual and class ref.

@clayjohn
Copy link
Member

Fully agree.

Also, rendering backend should be reserved for talking about Vulkan, D3D12, or Metal

Renderer and rendering method are interchangable. Renderer is the more friendly term, but wasn't a good fit for internal stuff. For docs, "renderer" should be preferred.

@Calinou
Copy link
Member

Calinou commented Oct 25, 2024

Also, rendering backend should be reserved for talking about Vulkan, D3D12, or Metal

The engine calls it "rendering driver" so I would stick to that instead, and avoid "backend" for this purpose entirely. However, "backend" is suitable in the expression "RenderingDevice backend", e.g. "Compatibility does not run on the RenderingDevice backend".

@tetrapod00
Copy link
Contributor Author

Does this sound right:
Renderers/rendering methods: Forward+, Mobile, Compatibility
Rendering backends: RenderingDevice (does compatibility have an equivalent?)
Rendering drivers: OpenGL, Vulkan, Metal, Direct3D 12
The Forward+ renderer runs on the RenderingDevice backend using the Vulkan rendering driver.

The Renderers page (which will likely eventually become a section, not a single page) should perhaps have a short paragraph with the differences between "renderer/rendering method", "rendering driver", and maybe "rendering backend".

@Calinou
Copy link
Member

Calinou commented Oct 26, 2024

Does this sound right:

Yes 🙂

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

Successfully merging a pull request may close this issue.

3 participants