Commit graph

40 commits

Author SHA1 Message Date
lawnjelly
0aa22b8f13 Vertex cache optimizer
Optimizes indices to make good use of vertex cache on GPU.
2024-02-07 09:35:50 +00:00
Hugo Locurcio
811f814f45
Document Mesh vertex color compression clamping overbright/HDR colors 2022-09-21 20:30:04 +02:00
Rémi Verschelde
61b5e35de5
Merge pull request #61559 from kleonc/triangle_mesh_from_triangle_strip_or_fan_3x
[3.x] Make `Mesh::generate_triangle_mesh()` handle `PRIMITIVE_TRIANGLE_STRIP` and `PRIMITIVE_TRIANGLE_FAN`
2022-08-05 22:35:52 +02:00
Rémi Verschelde
0a8d5d7098 Bump version to 3.6-beta 2022-08-05 18:51:38 +02:00
kleonc
84898dfc22 Make Mesh::generate_triangle_mesh() handle PRIMITIVE_TRIANGLE_STRIP and PRIMITIVE_TRIANGLE_FAN 2022-06-07 22:04:14 +02:00
Hugo Locurcio
b087538119
Add an XML schema for documentation
This makes it easier to spot syntax errors when editing the
class reference. The schema is referenced locally so validation
can still work offline.

Each class XML's schema conformance is also checked on GitHub Actions.
2022-03-16 23:01:02 +01:00
Rémi Verschelde
14c366ddd7
Bump version to 3.5-beta 2021-11-05 16:10:17 +01:00
Rémi Verschelde
f5836b40d4
doc: Use self-closing tags for return and argument
For the time being we don't support writing a description for those, preferring
having all details in the method's description.

Using self-closing tags saves half the lines, and prevents contributors from
thinking that they should write the argument or return documentation there.

(cherry picked from commit 7adf4cc9b5)
2021-08-03 10:20:19 +02:00
Omar El Sheikh
d274284069 Octahedral Normal/Tangent Compression
Implement Octahedral Compression for normal/tangent vectors
*Oct32 for uncompressed vectors
*Oct16 for compressed vectors

Reduces vertex size for each attribute by
*Uncompressed: 12 bytes, vec4<float32> -> vec2<unorm16>
*Compressed: 2 bytes, vec4<unorm8> -> vec2<unorm8>

Binormal sign is encoded in the y coordinate of the encoded tangent

Added conversion functions to go from octahedral mapping to cartesian
for normal and tangent vectors

sprite_3d and soft_body meshes write to their vertex buffer memory
directly and need to convert their normals and tangents to the new oct
format before writing

Created a new mesh flag to specify whether a mesh is using octahedral
compression or not
Updated documentation to discuss new flag/defaults

Created shader flags to specify whether octahedral or cartesian vectors
are being used

Updated importers to use octahedral representation as the default format
for importing meshes

Updated ShaderGLES2 to support 64 bit version codes as we hit the limit
of the 32-bit integer that was previously used as a bitset to store
enabled/disabled flags
2021-07-30 10:29:09 -04:00
PouleyKetchoupp
240c33708c Options to clean/simplify convex hull generated from mesh
Clean: remove duplicate and interior vertices (uses Bullet algorithm)
Simplify: modify the geometry for further simplification (uses VHACD
algorithm)

In the editor, single convex hull now uses the clean option.
Added a new editor entry to create a simplified convex hull, can be
useful for creating convex hull from highly tessellated triangle meshes.

Specific change for 3.x:
Add support for Vector<Vector3> and PoolVector<Vector3> in the convex hull generator.
2021-07-09 17:45:59 -07:00
Rémi Verschelde
c3272997cd
doc: Update classref headers with 3.4 version 2021-04-26 13:15:29 +02:00
Rémi Verschelde
1aba997d75
doc: Sync classref with 3.3 version bump 2021-03-23 13:40:34 +01:00
JFonS
d909592fc5 Add documentation for new CPU lightmapper. 2021-01-15 12:31:46 +01:00
Aaron Franke
069ed4ec63
Link to demos from within the class reference
(cherry picked from commit 439be614f4)
2020-10-19 16:10:01 +02:00
Hugo Locurcio
939de03db7
Cross-reference AABB getter methods in the documentation
This also clarifies that `get_aabb()` returns the AABB in local space.

See https://github.com/godotengine/godot/issues/42095.

(cherry picked from commit 9712f8fd2d)
2020-09-16 16:22:39 +02:00
Rémi Verschelde
2d20fc39aa doc: Drop unused 'category' property from header
We already removed it from the online docs with #35132.

Currently it can only be "Built-In Types" (Variant types) or "Core"
(everything else), which is of limited use.

We might also want to consider dropping it from `ClassDB` altogether
in Godot 4.0.
2020-01-26 16:02:39 +01:00
clayjohn
46b5742159 Completed documentation for many visual nodes 2020-01-14 18:28:36 -08:00
Aaron Franke
a139104646
Expose Mesh get_aabb 2019-12-11 08:25:36 -05:00
Rémi Verschelde
c6cea6e9b3 doc: Add default values to all properties
Thanks to @bojidar-bg's impressive work in #29380.
2019-06-30 13:58:07 +02:00
Hugo Locurcio
f7f6115f76
Proofread and improve the whole class reference
- Document a few more properties and methods
- Add more information to many classes
- Fix lots of typos and gramar mistakes
- Use [code] tags for parameters consistently
- Use [b] and [i] tags consistently
- Put "Warning:" and "Note:" on their own line to be more visible,
  and make them always bold
- Tweak formatting in code examples to be more readable
- Use double quotes consistently
- Add more links to third-party technologies
2019-06-27 22:30:19 +02:00
Rémi Verschelde
86ed7a9884 doc: Complete and harmonize all _MAX constant descriptions 2019-06-27 11:10:53 +02:00
Rémi Verschelde
0dac4d6db6
Merge pull request #25522 from aqnuep/MeshLibrary_improvements
MeshLibrary export improvements
2019-06-03 13:59:43 +02:00
Sean Heffernan
426bcc9941 Change "Return" to "Returns" where necessary in XML documentation
In many of the XML files it had been noted that when the documentation
refers to a return value, both "Return" and "Returns" are used. This
has now been fixed to only say "Returns".

Fixes #28867
2019-05-23 21:11:24 -07:00
Rémi Verschelde
6af69f851a doc: Drop unused <demos> tag 2019-04-19 11:03:46 +02:00
Rémi Verschelde
63d3a42f82
Merge pull request #27465 from neikeq/road-to-lang-agnostic-docs-is-going-to-be-tough
EditorHelp: Improve enum ref resolving and add constant ref support
2019-04-05 15:19:21 +02:00
Rémi Verschelde
39c868171e doc: Bump version to 3.2 2019-04-01 12:33:56 +02:00
Ignacio Etcheverry
d80bc5cbba ClassRef: Replace [code]CurrentClass[/code] with [CurrentClass]
Modified makerst to generate code tags for these to avoid hyperlinks to the same class.
2019-03-29 23:47:35 +01:00
Daniel Rakos
6df53e0401 MeshLibrary export improvements
- From now materials assigned to the MeshInstance (not the Mesh) get exported
  into the MeshLibrary when such materials exist. This enables workflows where
  the MeshLibrary is exported from an imported scene (e.g. GLTF) where the
  materials assigned to the Mesh (not the MeshInstance) get overwritten on
  re-import, thus can't use editor set materials in the exported MeshLibrary
  unless they are assigned to the MeshInstance whose materials get saved with
  the inherited scene thus persist across re-imports.
- When appending to an existing MeshLibrary only generate previews for newly
  added or modified meshes.
- During preview generation transform camera and lights instead of the mesh
  and use the source MeshInstance's transform for the mesh to avoid weird
  previews being generated for meshes with a position dependent material
  (e.g. when using triplanar mapping).
- Adjust the camera angle and light directions used in mesh preview generation
  for better results.
2019-02-03 22:48:35 +01:00
Bastiaan Olij
6837d695d6 Moved documentation for methods made accessible from super class for Mesh 2018-08-29 21:02:48 +10:00
Rémi Verschelde
391e46830f doc: Sync classref with current source
Fix various missing arguments in bindings.
2018-07-26 11:56:21 +02:00
Rémi Verschelde
3fa77b3172 doc: Remove status from hardcoded version string
It has no practical use case and just generates noise for each alpha, beta, etc.
2018-02-27 13:40:49 +01:00
Rémi Verschelde
3c7a39b40c doc: Update version string in header 2018-02-19 10:46:33 +01:00
Rémi Verschelde
d516aab8fa doc: Sync with current source
Also enhance RigidBody docs as per https://github.com/godotengine/godot-docs/pull/1018
and fix the version tag in all files (not really stable yet, but it makes no sense
to hardcode rc3 at this stage).
2018-01-25 08:50:56 +01:00
Rémi Verschelde
e28cdc4654 doc: Update version string in XML 2018-01-13 11:43:42 +01:00
Rémi Verschelde
ce0f894b48 doc: Sync classref with current source 2017-12-10 00:43:49 +01:00
Rémi Verschelde
7dfba3cda9 doc: Fix enum tags thanks to 2bc6db6 2017-11-24 23:16:30 +01:00
Rémi Verschelde
bc75fae579 doc: Update header version for 3.0-beta 2017-11-24 09:16:52 +01:00
Rémi Verschelde
967bfb0c4a doc: Remove revision.module_config from version string
It is now "3.0-alpha" instead of "3.0.alpha.custom_build{,.mono}",
limits unnecessary diffs.
2017-11-15 20:41:16 +01:00
Rémi Verschelde
62cb43bb8d doc: Sync classref with current source
[ci skip]
2017-09-16 01:46:29 +02:00
Juan Linietsky
4f929a0fdf Changed the doc class generation to individual files per class. It is also possible to save module files in module directories and the build system will
recognize them.
2017-09-12 17:45:41 -03:00