summaryrefslogtreecommitdiff
path: root/servers/rendering/renderer_scene_cull.cpp
AgeCommit message (Collapse)Author
2022-11-17Finish implementing Canvas Background modeclayjohn
2022-10-28Merge pull request #67112 from Chaosus/fix_boolean_uniform_instancesYuri Rubinsky
2022-10-09Fix incorrect setup of boolean uniform instancesYuri Rubinsky
2022-10-08Add `is_finite` method for checking built-in typesHaoyu Qiu
2022-10-07Fix material overlay overriding shadow casting logicclayjohn
Material overlay should only cast a shadow if it can cast a shadow and the instance can cast a shadow
2022-10-04Move cluster builder, sdfgi and gi structures to clustered renderer, move ↵Bastiaan Olij
light and probe elements into storage and reorganise our render_scene method.
2022-09-19Split rendering driver project setting into renderer_name and ↵clayjohn
rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer).
2022-09-04Replace AABB has_no_volume with has_volumeAaron Franke
Also replace has_no_surface with has_surface
2022-09-02Merge pull request #65170 from KoBeWi/your_argument_is_TypedArrayRémi Verschelde
2022-09-02Merge pull request #64952 from Chaosus/vs_rename_uniform_to_paramRémi Verschelde
2022-09-01Change Array arguments to TypedArraykobewi
2022-09-01Extracting render buffers and changing it to a more generic solutionBastiaan Olij
2022-09-01Rename `uniform` to `parameter` across the engineYuri Rubinsky
2022-08-31Implement Physical Light Units as an optional setting.clayjohn
This allows light sources to be specified in physical light units in addition to the regular energy multiplier. In order to avoid loss of precision at high values, brightness values are premultiplied by an exposure normalization value. In support of Physical Light Units this PR also renames CameraEffects to CameraAttributes.
2022-08-30Dummy mesh support was added to the dummy renderer but incomplete. This ↵Bastiaan Olij
completes it
2022-08-26Rename `str2var` to `str_to_var` and similarMicky
Affects the Math class, a good chunk of the audio code, and a lot of other miscellaneous classes, too. - `var2str` -> `var_to_str` - `str2var` -> `str_to_var` - `bytes2var` -> `bytes_to_var` - `bytes2var_with_objects` -> `bytes_to_var_with_objects` - `var2bytes` -> `var_to_bytes` - `var2bytes_with_objects` -> `var_to_bytes_with_objects` - `linear2db` -> `linear_to_db` - `db2linear` -> `db_to_linear` - `deg2rad` -> `deg_to_rad` - `rad2deg` -> `rad_to_deg` - `dict2inst` -> `dict_to_inst` - `inst2dict` -> `inst_to_dict`
2022-08-22Fix typo in RendererSceneCulltefusion
Frees skeleton 3d gizmo now correctly
2022-08-04Rename shader parameter uniform setter/getter methods for consistencyHugo Locurcio
`shader_uniform` is now consistenly used across both per-shader and per-instance shader uniform methods. This makes methods easier to find in the class reference when looking for them.
2022-07-28Rename RenderingServer global shader uniform methods to be more explicitHugo Locurcio
The `global_shader_uniform` name is longer, but it makes it much easier to find the methods when searching in the class reference.
2022-07-27Change RendererSceneRender::GeometryInstance so more code is shared among ↵Bastiaan Olij
renderers
2022-07-25Remove ThreadWorkPool, replace by WorkerThreadPoolJuan Linietsky
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient. It can also be better debugged.
2022-07-23Implement Vector4, Vector4i, Projectionreduz
Implement built-in classes Vector4, Vector4i and Projection. * Two versions of Vector4 (float and integer). * A Projection class, which is a 4x4 matrix specialized in projection types. These types have been requested for a long time, but given they were very corner case they were not added before. Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity. **Q**: Why Projection and not Matrix4? **A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-12Fix typo, call mesh_instance_free not mesh_freeBastiaan Olij
2022-07-06Merge pull request #62344 from BastiaanOlij/extract_dependenciesRémi Verschelde
2022-06-28Fix crash in Environment "Canvas" background mode.JFonS
2022-06-28Split dependency logicBastiaan Olij
Split FOG Split visibility notifier Final cleanup of storage classes
2022-06-22Split GI effects and fix stereoscopic rendering of GI effectsBastiaan Olij
2022-06-07Initial TAA implementationjfons
Initial TAA support based on the implementation in Spartan Engine. Motion vectors are correctly generated for camera and mesh movement, but there is no support for other things like particles or skeleton deformations.
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-19Use range iterators for RBSet in most casesAaron Record
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-11opengl3 driver now works on windows including multi windowderammo
fixed and simplified gl_manager_windows swap buffers now called for all windows fixed missing pixel format setting in additional windows this makes them work in OpenGL contexts changed verbose error printing to write once this error message happens very frequently while opengl3 is not finished removed dead code no longer needed after changes fixed comments that were misinformation window messages during window creation now handled these were previously discarded messages now tunnel the required context changed failure to create opengl3 window on windows to be more fatal marked a problem with pen code conditional compilation of vulkan and opengl3 on windows fixed windows debug builds now show messages on debug console also rendering driver selection box now shows only compiled drivers marked some problematic code thanks to akien-mga for patiently rewriting my style mistakes
2022-05-03Rename Basis get_axis to get_column, remove redundant methodsAaron Franke
2022-04-29Rename Basis "elements" to "rows"Aaron Franke
2022-04-26Fix "ortogonal" -> "orthogonal" typo in rasterizer codeHugo Locurcio
2022-04-17Moved particles into ParticlesStorageBastiaan Olij
2022-04-17Move light, reflection probe and lightmap into LightStorageBastiaan Olij
2022-04-17Merge canvas and decal into TextureStorage and add render targetBastiaan Olij
2022-04-02Move storage for Mesh, MeshInstance, MultiMesh and Skeleton into MeshStorageBastiaan Olij
2022-03-31Extract global variable, shader and material storageBastiaan Olij
2022-03-21Extract Decal and Decal atlas from Storage classBastiaan Olij
2022-03-17Replace DirectionalLight3D's `use_in_sky_only` with `sky_mode` enumHugo Locurcio
3 options are available: - Light and Sky (default) - Light Only (new) - Sky Only (equivalent to `use_in_sky_only = true`) Co-authored by: clayjohn <claynjohn@gmail.com>
2022-03-04Tweak render timestamp names for explicitness and consistencyHugo Locurcio
- Add 2D and 3D in timestamp names when needed to avoid ambiguity. - Use present tense in all render timestamp names. - Add a space after ">" (begin) and "<" (end) symbols. - Remove redundant "End" in render timestamp names (indicated by "<").
2022-02-15Add Particle Shader Userdatareduz
* Adds optional vec4 USERDATA1 .. USERDATA6 to particles, allowing to store custom data. * This data is allocated on demand, so shaders that do not use it do not cost more.
2022-02-05Remove RID_Owner.get_rid_by_indexreduz
* Implementing this function efficiently is not really possible. * Replaced by an option to get all RIDs into a buffer for performance.
2022-01-05Added material_overlay property to MeshInstance3DFernando Cosentino
Applying overlay materials into multi-surface meshes currently requires adding a next pass material to all the surfaces, which might be cumbersome when the material is to be applied to a range of different geometries. This also makes it not trivial to use AnimationPlayer to control the material in case of visual effects. The material_override property is not an option as it works replacing the active material for the surfaces, not adding a new pass. This commit adds the material_overlay property to GeometryInstance3D (and therefore MeshInstance3D), having the same reach as material_override (that is, all surfaces) but adding a new material pass on top of the active materials, instead of replacing them.
2022-01-04Merge pull request #56305 from Calinou/rename-lod-thresholdRémi Verschelde
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-29Rename Lod Threshold to Mesh Lod ThresholdHugo Locurcio
This makes it more obvious that the setting only affects mesh LOD, not manual (H)LOD achieved using visibility ranges.
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A