From cd0a4ff53d49444f98f13fcd98ee51d2362cd7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Mon, 14 Jan 2019 16:15:45 +0100 Subject: [PATCH] Sync Weblate translations with Weblate template --- weblate/ar.po | 1816 +++++++++++++++++++++++++++-------------- weblate/ca.po | 1811 ++++++++++++++++++++++++++-------------- weblate/cs.po | 1817 +++++++++++++++++++++++++++-------------- weblate/da.po | 1811 ++++++++++++++++++++++++++-------------- weblate/de.po | 1840 +++++++++++++++++++++++++++-------------- weblate/el.po | 1819 +++++++++++++++++++++++++++-------------- weblate/es.po | 1868 ++++++++++++++++++++++++++++-------------- weblate/es_MX.po | 1831 +++++++++++++++++++++++++++-------------- weblate/fa.po | 1818 +++++++++++++++++++++++++++-------------- weblate/fi.po | 1840 ++++++++++++++++++++++++++--------------- weblate/fil.po | 1804 ++++++++++++++++++++++++++-------------- weblate/fr.po | 1849 ++++++++++++++++++++++++++--------------- weblate/he.po | 1819 +++++++++++++++++++++++++++-------------- weblate/hi.po | 1811 ++++++++++++++++++++++++++-------------- weblate/hu.po | 1814 ++++++++++++++++++++++++++-------------- weblate/id.po | 1816 +++++++++++++++++++++++++++-------------- weblate/it.po | 1829 +++++++++++++++++++++++++++-------------- weblate/ja.po | 1817 +++++++++++++++++++++++++++-------------- weblate/jbo.po | 1804 ++++++++++++++++++++++++++-------------- weblate/ko.po | 1837 +++++++++++++++++++++++++++-------------- weblate/lt.po | 1806 ++++++++++++++++++++++++++-------------- weblate/ms.po | 1812 ++++++++++++++++++++++++++-------------- weblate/nb.po | 1804 ++++++++++++++++++++++++++-------------- weblate/nl.po | 1810 ++++++++++++++++++++++++++-------------- weblate/pl.po | 1855 +++++++++++++++++++++++++++-------------- weblate/pt_BR.po | 1840 +++++++++++++++++++++++++++-------------- weblate/pt_PT.po | 1840 +++++++++++++++++++++++++++-------------- weblate/ro.po | 1817 +++++++++++++++++++++++++++-------------- weblate/ru.po | 1854 +++++++++++++++++++++++++++-------------- weblate/sk.po | 1804 ++++++++++++++++++++++++++-------------- weblate/sl.po | 1817 +++++++++++++++++++++++++++-------------- weblate/sr_Latn.po | 1817 +++++++++++++++++++++++++++-------------- weblate/sv.po | 1816 +++++++++++++++++++++++++++-------------- weblate/te.po | 1811 ++++++++++++++++++++++++++-------------- weblate/th.po | 1810 ++++++++++++++++++++++++++-------------- weblate/tr.po | 1820 +++++++++++++++++++++++++++-------------- weblate/uk.po | 1863 +++++++++++++++++++++++++++--------------- weblate/vi.po | 1814 ++++++++++++++++++++++++++-------------- weblate/zh_CN.po | 1952 ++++++++++++++++++++++++++++++-------------- weblate/zh_TW.po | 1814 ++++++++++++++++++++++++++-------------- 40 files changed, 47843 insertions(+), 25204 deletions(-) diff --git a/weblate/ar.po b/weblate/ar.po index 94d381907a..24c87a4471 100644 --- a/weblate/ar.po +++ b/weblate/ar.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-10-22 21:22+0000\n" "Last-Translator: Mohamed El-Baz \n" "Language-Team: Arabic `_ markup " "language and then compiled into a static website/offline document using the " @@ -345,8 +351,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -359,7 +365,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1712,7 +1718,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1732,22 +1738,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1755,7 +1759,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1764,18 +1768,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1783,7 +1787,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1794,13 +1798,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1808,21 +1812,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1832,18 +1836,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9329,8 +9333,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10015,11 +10019,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10264,8 +10268,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19067,8 +19071,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19807,7 +19811,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20357,306 +20361,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "إنشاء المحتوى" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "إنشاء المحتوى" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36915,7 +36705,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37318,7 +37108,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37355,7 +37145,767 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "إنشاء المحتوى" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "إنشاء المحتوى" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "صورة متحركة" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "إنشاء المحتوى" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "إنشاء المحتوى" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "صورة متحركة" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42984,7 +43534,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43007,9 +43557,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43026,35 +43577,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43094,7 +43645,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43121,8 +43672,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43135,13 +43686,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43163,20 +43714,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43219,7 +43770,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43282,9 +43833,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43307,11 +43858,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43330,10 +43881,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43384,7 +43935,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43392,7 +43943,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43400,7 +43951,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43417,7 +43968,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43425,7 +43976,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43433,7 +43984,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43441,7 +43992,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43449,7 +44000,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43457,7 +44008,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43465,7 +44016,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43483,7 +44034,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43492,7 +44043,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43502,7 +44053,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43542,7 +44093,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43597,9 +44148,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43619,8 +44170,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43644,7 +44195,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43661,9 +44212,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43946,7 +44497,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43967,12 +44518,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43998,9 +44549,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44026,7 +44577,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44036,7 +44587,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44068,8 +44619,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44195,7 +44746,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44551,7 +45102,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44559,7 +45110,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44684,7 +45235,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45181,14 +45732,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45547,7 +46098,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45564,7 +46116,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45654,7 +46206,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45879,14 +46431,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45961,9 +46513,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45971,7 +46523,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46073,13 +46625,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46186,9 +46738,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46368,7 +46920,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46391,7 +46943,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46419,8 +46971,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46489,7 +47041,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46502,7 +47054,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46512,18 +47064,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46533,10 +47086,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46562,7 +47115,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46600,7 +47153,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46623,14 +47176,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46653,7 +47206,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46675,7 +47228,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46696,8 +47249,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46705,7 +47258,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46715,10 +47268,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46730,15 +47283,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46751,20 +47304,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46787,75 +47340,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46883,9 +47436,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46910,8 +47463,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46924,11 +47477,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46945,38 +47498,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46988,184 +47540,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47181,14 +47733,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47261,7 +47813,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47272,8 +47824,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47310,7 +47862,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47328,25 +47880,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47361,7 +47913,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47372,10 +47924,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47389,22 +47941,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47416,7 +47968,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47435,23 +47987,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47460,20 +48012,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47498,8 +48050,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47509,41 +48061,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47558,34 +48110,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47593,7 +48145,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47612,7 +48164,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47626,9 +48178,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47653,8 +48205,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47678,20 +48230,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47706,7 +48258,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47725,50 +48277,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63881,3 +64433,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/ca.po b/weblate/ca.po index f50b70ad8d..16d86d3317 100644 --- a/weblate/ca.po +++ b/weblate/ca.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-09-12 03:14+0000\n" "Last-Translator: Roger Blanco Ribera \n" "Language-Team: Catalan `_ markup " "language and then compiled into a static website/offline document using the " @@ -357,9 +363,10 @@ msgstr "" "ideal per als nous usuaris." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "La secció :ref:`sec-tutorials`, d'altra banda, està pensada per accedir-hi " "sense ordre específic i segons calgui. Conté documentació i exemples " @@ -379,7 +386,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1809,7 +1816,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1829,22 +1836,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1852,7 +1857,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1861,18 +1866,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1880,7 +1885,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1891,13 +1896,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1905,21 +1910,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1929,18 +1934,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9425,8 +9430,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10111,11 +10116,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10360,8 +10365,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19154,8 +19159,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19893,7 +19898,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20443,304 +20448,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36996,7 +36789,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37399,7 +37192,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37436,7 +37229,763 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +msgid "Creating an AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Primers passos" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "No hi ha cap mena de restricció en l'ús del motor Godot" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43064,7 +43613,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43087,9 +43636,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43106,35 +43656,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43174,7 +43724,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43201,8 +43751,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43215,13 +43765,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43243,20 +43793,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43299,7 +43849,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43362,9 +43912,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43387,11 +43937,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43410,10 +43960,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43464,7 +44014,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43472,7 +44022,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43480,7 +44030,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43497,7 +44047,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43505,7 +44055,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43513,7 +44063,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43521,7 +44071,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43529,7 +44079,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43537,7 +44087,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43545,7 +44095,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43563,7 +44113,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43572,7 +44122,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43582,7 +44132,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43622,7 +44172,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43677,9 +44227,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43699,8 +44249,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43724,7 +44274,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43741,9 +44291,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44026,7 +44576,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44047,12 +44597,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44078,9 +44628,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44106,7 +44656,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44116,7 +44666,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44148,8 +44698,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44275,7 +44825,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44631,7 +45181,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44639,7 +45189,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44764,7 +45314,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45261,14 +45811,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45627,7 +46177,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45644,7 +46195,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45734,7 +46285,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45959,14 +46510,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46041,9 +46592,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46051,7 +46602,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46153,13 +46704,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46265,9 +46816,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46447,7 +46998,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46470,7 +47021,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46498,8 +47049,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46568,7 +47119,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46581,7 +47132,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46591,18 +47142,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46612,10 +47164,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46641,7 +47193,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46679,7 +47231,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46702,14 +47254,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46732,7 +47284,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46754,7 +47306,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46775,8 +47327,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46784,7 +47336,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46794,10 +47346,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46809,15 +47361,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46830,20 +47382,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46866,75 +47418,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46962,9 +47514,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46989,8 +47541,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47003,11 +47555,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47024,38 +47576,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47067,184 +47618,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47260,14 +47811,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47340,7 +47891,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47351,8 +47902,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47389,7 +47940,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47407,25 +47958,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47440,7 +47991,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47451,10 +48002,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47468,22 +48019,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47495,7 +48046,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47514,23 +48065,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47539,20 +48090,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47577,8 +48128,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47588,41 +48139,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47637,34 +48188,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47672,7 +48223,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47691,7 +48242,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47705,9 +48256,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47732,8 +48283,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47757,20 +48308,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47785,7 +48336,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47804,50 +48355,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63965,6 +64516,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "No hi ha cap mena de restricció en l'ús del motor Godot" diff --git a/weblate/cs.po b/weblate/cs.po index 0310f78b0b..7917529009 100644 --- a/weblate/cs.po +++ b/weblate/cs.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-14 21:01+0000\n" "Last-Translator: jakub zukal \n" "Language-Team: Czech `_ markup " "language and then compiled into a static website/offline document using the " @@ -309,8 +312,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -323,7 +326,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1658,7 +1661,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1678,22 +1681,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1701,7 +1702,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1710,18 +1711,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1729,7 +1730,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1740,13 +1741,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1754,21 +1755,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1778,18 +1779,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9282,8 +9283,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9969,11 +9970,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10218,8 +10219,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19025,8 +19026,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19764,7 +19765,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20314,307 +20315,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Kostra" +msgid "2D meshes" +msgstr "Signály" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Vytváření obsahu" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Vytváření obsahu" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36875,7 +36662,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37278,7 +37065,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37315,7 +37102,769 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Kostra" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Vytváření obsahu" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Vytváření obsahu" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animace" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Animace" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Vytváření obsahu" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Podmínka" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Podmínka" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42943,7 +43492,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42966,9 +43515,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42985,35 +43535,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43053,7 +43603,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43080,8 +43630,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43094,13 +43644,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43122,20 +43672,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43178,7 +43728,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43241,9 +43791,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43266,11 +43816,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43289,10 +43839,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43343,7 +43893,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43351,7 +43901,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43359,7 +43909,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43376,7 +43926,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43384,7 +43934,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43392,7 +43942,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43400,7 +43950,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43408,7 +43958,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43416,7 +43966,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43424,7 +43974,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43442,7 +43992,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43451,7 +44001,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43461,7 +44011,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43501,7 +44051,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43556,9 +44106,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43578,8 +44128,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43603,7 +44153,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43620,9 +44170,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43905,7 +44455,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43926,12 +44476,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43957,9 +44507,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43985,7 +44535,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43995,7 +44545,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44027,8 +44577,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44154,7 +44704,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44510,7 +45060,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44518,7 +45068,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44643,7 +45193,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45140,14 +45690,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45506,7 +46056,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45523,7 +46074,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45613,7 +46164,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45839,14 +46390,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45921,9 +46472,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45931,7 +46482,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46033,13 +46584,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46146,9 +46697,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46328,7 +46879,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46351,7 +46902,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46379,8 +46930,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46449,7 +47000,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46462,7 +47013,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46472,18 +47023,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46493,10 +47045,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46522,7 +47074,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46560,7 +47112,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46583,14 +47135,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46613,7 +47165,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46635,7 +47187,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46656,8 +47208,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46665,7 +47217,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46675,10 +47227,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46691,15 +47243,15 @@ msgstr "Podmínka" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46712,20 +47264,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46748,75 +47300,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Proměnná" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46844,9 +47396,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46871,8 +47423,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46885,11 +47437,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46906,39 +47458,38 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Typ" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46950,185 +47501,185 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Barva" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47144,14 +47695,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47224,7 +47775,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47235,8 +47786,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47273,7 +47824,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47291,25 +47842,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47324,7 +47875,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47335,10 +47886,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47352,22 +47903,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47379,7 +47930,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47398,23 +47949,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47423,20 +47974,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47461,8 +48012,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47472,41 +48023,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47521,34 +48072,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47556,7 +48107,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47575,7 +48126,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47589,9 +48140,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47616,8 +48167,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47641,20 +48192,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47669,7 +48220,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47688,50 +48239,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63846,6 +64397,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "Supported Animation" #~ msgstr "Animace" diff --git a/weblate/da.po b/weblate/da.po index 9fa110bb5c..cce4709357 100644 --- a/weblate/da.po +++ b/weblate/da.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-13 10:14+0000\n" "Last-Translator: GhostReven \n" "Language-Team: Danish `_ markup " "language and then compiled into a static website/offline document using the " @@ -355,9 +361,10 @@ msgstr "" "brugere." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" ":ref:`sec-tutorials` sektionen på den anden side kan blive læst om " "nødvendigt i vilkårlig rækkefølge. Den indeholder mange funktionsspecifikke " @@ -377,7 +384,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1775,7 +1782,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1795,22 +1802,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1818,7 +1823,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1827,18 +1832,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1846,7 +1851,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1857,13 +1862,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1871,21 +1876,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1895,18 +1900,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9391,8 +9396,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10077,11 +10082,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10326,8 +10331,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19120,8 +19125,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19859,7 +19864,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20409,304 +20414,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36965,7 +36758,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37368,7 +37161,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37405,7 +37198,763 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +msgid "Creating an AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Kom i gang" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Der er ingen brugsrestriktioner på Godot" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43033,7 +43582,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43056,9 +43605,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43075,35 +43625,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43143,7 +43693,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43170,8 +43720,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43184,13 +43734,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43212,20 +43762,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43268,7 +43818,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43331,9 +43881,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43356,11 +43906,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43379,10 +43929,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43433,7 +43983,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43441,7 +43991,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43449,7 +43999,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43466,7 +44016,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43474,7 +44024,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43482,7 +44032,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43490,7 +44040,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43498,7 +44048,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43506,7 +44056,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43514,7 +44064,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43532,7 +44082,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43541,7 +44091,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43551,7 +44101,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43591,7 +44141,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43646,9 +44196,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43668,8 +44218,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43693,7 +44243,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43710,9 +44260,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43995,7 +44545,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44016,12 +44566,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44047,9 +44597,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44075,7 +44625,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44085,7 +44635,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44117,8 +44667,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44243,7 +44793,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44599,7 +45149,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44607,7 +45157,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44732,7 +45282,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45229,14 +45779,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45595,7 +46145,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45612,7 +46163,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45702,7 +46253,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45927,14 +46478,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46009,9 +46560,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46019,7 +46570,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46121,13 +46672,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46233,9 +46784,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46415,7 +46966,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46438,7 +46989,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46466,8 +47017,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46536,7 +47087,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46549,7 +47100,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46559,18 +47110,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46580,10 +47132,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46609,7 +47161,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46647,7 +47199,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46670,14 +47222,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46700,7 +47252,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46722,7 +47274,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46743,8 +47295,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46752,7 +47304,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46762,10 +47314,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46777,15 +47329,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46798,20 +47350,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46834,75 +47386,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46930,9 +47482,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46957,8 +47509,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46971,11 +47523,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46992,38 +47544,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47035,184 +47586,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47228,14 +47779,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47308,7 +47859,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47319,8 +47870,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47357,7 +47908,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47375,25 +47926,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47408,7 +47959,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47419,10 +47970,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47436,22 +47987,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47463,7 +48014,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47482,23 +48033,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47507,20 +48058,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47545,8 +48096,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47556,41 +48107,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47605,34 +48156,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47640,7 +48191,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47659,7 +48210,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47673,9 +48224,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47700,8 +48251,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47725,20 +48276,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47753,7 +48304,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47772,50 +48323,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63933,6 +64484,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "Der er ingen brugsrestriktioner på Godot" diff --git a/weblate/de.po b/weblate/de.po index b5f0fac1bd..5473f2a41f 100644 --- a/weblate/de.po +++ b/weblate/de.po @@ -50,7 +50,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-08 08:58+0000\n" "Last-Translator: Manuel Schade \n" "Language-Team: German `_ markup " "language and then compiled into a static website/offline document using the " @@ -404,9 +410,10 @@ msgstr "" "Neueinsteiger ist." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "Der Abschnitt :ref:`sec-tutorials` dagegen kann ganz nach Bedarf gelesen " "werden, in beliebiger Reihenfolge. Er enthält viele Feature-spezifische " @@ -423,9 +430,10 @@ msgstr "" "der Engine und zur Entwicklung von C++-Modulen oder Editor Plugins." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2229,10 +2237,11 @@ msgid "Conclusion" msgstr "Fazit" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "Instanzieren kann nützlich sein, wenn du mehrere Kopien des gleichen Objekts " "erstellen möchtest. Zudem ist es möglich Instanzen durch Code mittels " @@ -2256,15 +2265,10 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "Die Möglichkeit Szenen aufzuteilen und diese einfacher zu Hand haben." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -#, fuzzy -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Eine flexiblere (und sehr viel mächtigere, durch die Möglichkeit Instanzen " -"zu verschachteln) Alternative zu Prefabs." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2272,11 +2276,11 @@ msgstr "" "Einen Weg deinen komplexe Spielfluss oder sogar UI's (in Godot sind UI " "Elemente auch Nodes) zu organisieren und einzubetten." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Designsprache" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2288,7 +2292,7 @@ msgstr "" "anderen Engines uunterscheidet. Godot wurde von Anfang an nach diesem " "Konzept entworfen." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2303,11 +2307,11 @@ msgstr "" "vorstellst. Nicht nur die, die ein Programmierer nennen kann, sondern die, " "die alle sehen." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "So könnte man sich zum Beispiel einen simplen Shooter vorstellen:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2317,7 +2321,7 @@ msgstr "" "auf, welche Teile des Spiels du visualisieren kannst und füge Pfeile hinzu " "um die Beziehungen zwischen den Komponenten zu repräsentieren." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2328,7 +2332,7 @@ msgstr "" "Diagramm eine Szene zu erstellen. Um die Beziehungen zu verwirklichen wirst " "du das Instanziieren (entweder im Code oder direkt im Editor) verwenden." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 #, fuzzy msgid "" "A lot of time spent in programming games (or software in general) is on " @@ -2348,7 +2352,7 @@ msgstr "" "werden, erlaubt der Entwurf rund um Szeneninstanzierung, dass wenig " "architektonischer Code nötig ist." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2356,7 +2360,7 @@ msgstr "" "Schauen wir uns num etwas komplexeres wie zum Beispiel ein Open-World Spiel " "an, welches viele Assets und verschachtete Elemente besitzt:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2368,7 +2372,7 @@ msgstr "" "Möbeln(ebenfalls Szenen) beinhalten. Später können wir eine Hausszene " "erstellen, welche die Räume verbindet und so das Innere beschreibt." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2378,7 +2382,7 @@ msgstr "" "dieser instanziierten Häuser besteht. Danach könnten wir anfangen und das " "Terrain auf der Weltkarte erstellen und dort die Festung hinzufügen." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2388,7 +2392,7 @@ msgstr "" "NPCs) und dieser der Festung hinzufügen. Das Resultat wäre, dass sie " "indirekt der kompletten Spielwelt hinzugefügt werden." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2404,11 +2408,11 @@ msgstr "" "2D und 3D Künstler, Leveldesigner, Gamedesigner und Animateure einschließen, " "die alle mit diesem Editorinterface arbeiten." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "Informationsüberfluss!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2418,7 +2422,7 @@ msgstr "" "geworfen. Allerdings war ein wichtiger Teil dieses Tutorials der, dir zu " "zeigen wie Szenen und Instanziierung in realen Projekten verwendet wird." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -10804,8 +10808,8 @@ msgstr "Schlüsselwort" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -11519,11 +11523,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "float" @@ -11818,8 +11822,8 @@ msgstr "Daten" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "Variablen" @@ -20894,8 +20898,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -21634,7 +21638,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -22187,308 +22191,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Skelett" +msgid "2D meshes" +msgstr "Benutzerdefinierte Iteratoren" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Erstellen eines C# Skripts" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Eine Szene skripten" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Konfigurieren des Projektes" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -38820,7 +38609,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -39223,7 +39012,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -39260,7 +39049,772 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Skelett" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Erstellen eines C# Skripts" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Eine Szene skripten" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Konfigurieren des Projektes" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animation" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Animationen" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Erstellen eines C# Skripts" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Timer Beispiel" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Bedingung" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Es gibt 6 Schematypen:" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Funktionen und Variablen" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -44895,7 +45449,7 @@ msgstr "Funktionen und Variablen" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -44918,9 +45472,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -44938,35 +45493,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -45007,7 +45562,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -45034,8 +45589,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -45048,14 +45603,14 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 #, fuzzy msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" "Für mehr Informationen über Events, siehe :ref:`doc_inputevent` Tutorial." @@ -45078,20 +45633,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -45135,7 +45690,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -45201,9 +45756,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -45226,11 +45781,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -45249,10 +45804,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -45303,7 +45858,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -45311,7 +45866,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -45319,7 +45874,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -45336,7 +45891,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -45344,7 +45899,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -45352,7 +45907,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -45360,7 +45915,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -45368,7 +45923,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -45376,7 +45931,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -45384,7 +45939,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -45402,7 +45957,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -45411,7 +45966,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -45421,7 +45976,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -45461,7 +46016,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -45516,9 +46071,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -45538,8 +46093,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -45563,7 +46118,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -45580,9 +46135,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -45865,7 +46420,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -45886,12 +46441,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -45917,9 +46472,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -45945,7 +46500,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -45955,7 +46510,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -45987,8 +46542,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -46117,7 +46672,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -46474,7 +47029,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -46482,7 +47037,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -46607,7 +47162,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -47105,14 +47660,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -47472,7 +48027,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -47489,7 +48045,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -47579,7 +48135,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -47805,14 +48361,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -47887,9 +48443,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -47897,7 +48453,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -47999,13 +48555,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -48112,9 +48668,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -48294,7 +48850,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -48317,7 +48873,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -48345,8 +48901,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -48417,7 +48973,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -48430,7 +48986,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -48440,18 +48996,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -48461,10 +49018,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -48490,7 +49047,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -48528,7 +49085,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -48551,14 +49108,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -48581,7 +49138,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -48602,10 +49159,12 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 +#, fuzzy msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" +"Für mehr Informationen über Events, siehe :ref:`doc_inputevent` Tutorial." #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:17 msgid "GLSL" @@ -48624,8 +49183,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -48633,7 +49192,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -48644,10 +49203,10 @@ msgstr "``x.attribute``" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -48660,15 +49219,15 @@ msgstr "Bedingung" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -48681,20 +49240,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -48717,75 +49276,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Variable" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -48813,9 +49372,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -48840,8 +49399,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -48854,11 +49413,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -48875,39 +49434,38 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Art" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -48919,185 +49477,185 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Farbe" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -49113,14 +49671,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -49193,7 +49751,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -49204,8 +49762,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -49242,7 +49800,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -49260,25 +49818,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -49293,7 +49851,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -49304,10 +49862,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -49321,22 +49879,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -49348,7 +49906,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -49367,23 +49925,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -49392,20 +49950,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -49430,8 +49988,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -49441,41 +49999,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -49490,34 +50048,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -49525,7 +50083,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -49545,7 +50103,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -49559,9 +50117,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -49586,8 +50144,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -49611,20 +50169,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -49639,7 +50197,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -49659,50 +50217,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -65920,6 +66478,20 @@ msgstr "" "`Zeef Godot Engine: Ein von Andre Schmitz gepflegtes Verzeichnis von " "Resourcen `_" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#, fuzzy +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Eine flexiblere (und sehr viel mächtigere, durch die Möglichkeit " +#~ "Instanzen zu verschachteln) Alternative zu Prefabs." + #, fuzzy #~ msgid "" #~ "If you're using C#, you need to restart Godot editor temporarily to see " diff --git a/weblate/el.po b/weblate/el.po index 89ac6a07cb..89ce9c76b5 100644 --- a/weblate/el.po +++ b/weblate/el.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-09-25 10:27+0000\n" "Last-Translator: George Tsiamasiotis \n" "Language-Team: Greek `_ markup " "language and then compiled into a static website/offline document using the " @@ -345,9 +351,10 @@ msgstr "" "εισαγωγής για όλους τους νέους χρήστες." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "Το τμήμα :ref:`sec-tutorials`, όμως, μπορεί να διαβαστεί όπως απαιτείται. " "Περιέχει μεγάλο τμήμα τεκμηρίωσης και οδηγών για συγκεκριμένες δυνατότητες." @@ -367,7 +374,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1857,7 +1864,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1877,22 +1884,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1900,7 +1905,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1909,18 +1914,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1928,7 +1933,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1939,13 +1944,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1953,21 +1958,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1977,18 +1982,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9481,8 +9486,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10171,11 +10176,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10420,8 +10425,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19235,8 +19240,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19975,7 +19980,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20525,306 +20530,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Δημιουργία περιεχομένου" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Δημιουργία περιεχομένου" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -37088,7 +36879,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37491,7 +37282,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37528,7 +37319,769 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Δημιουργία περιεχομένου" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Δημιουργία περιεχομένου" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Κίνηση" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Κινήσεις" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Δημιουργία περιεχομένου" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Συνθήκη" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Δεν υπάρχουν περιορισμοί χρήσης στην Godot" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Συνθήκη" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43156,7 +43709,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43179,9 +43732,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43198,35 +43752,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43266,7 +43820,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43293,8 +43847,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43307,13 +43861,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43335,20 +43889,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43391,7 +43945,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43454,9 +44008,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43479,11 +44033,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43502,10 +44056,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43556,7 +44110,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43564,7 +44118,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43572,7 +44126,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43589,7 +44143,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43597,7 +44151,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43605,7 +44159,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43613,7 +44167,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43621,7 +44175,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43629,7 +44183,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43637,7 +44191,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43655,7 +44209,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43664,7 +44218,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43674,7 +44228,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43714,7 +44268,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43769,9 +44323,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43791,8 +44345,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43816,7 +44370,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43833,9 +44387,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44118,7 +44672,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44139,12 +44693,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44170,9 +44724,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44198,7 +44752,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44208,7 +44762,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44240,8 +44794,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44369,7 +44923,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44725,7 +45279,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44733,7 +45287,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44858,7 +45412,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45355,14 +45909,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45721,7 +46275,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45738,7 +46293,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45828,7 +46383,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -46054,14 +46609,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46136,9 +46691,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46146,7 +46701,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46248,13 +46803,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46361,9 +46916,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46543,7 +47098,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46566,7 +47121,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46594,8 +47149,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46664,7 +47219,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46677,7 +47232,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46687,18 +47242,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46708,10 +47264,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46737,7 +47293,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46775,7 +47331,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46798,14 +47354,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46828,7 +47384,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46850,7 +47406,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46871,8 +47427,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46880,7 +47436,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46890,10 +47446,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46906,15 +47462,15 @@ msgstr "Συνθήκη" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46927,20 +47483,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46963,75 +47519,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Μεταβλητή" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -47059,9 +47615,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -47086,8 +47642,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47100,11 +47656,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47121,39 +47677,38 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Τύπος" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47165,185 +47720,185 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Χρώμα" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47359,14 +47914,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47439,7 +47994,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47450,8 +48005,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47488,7 +48043,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47506,25 +48061,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47539,7 +48094,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47550,10 +48105,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47567,22 +48122,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47594,7 +48149,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47613,23 +48168,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47638,20 +48193,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47676,8 +48231,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47687,41 +48242,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47736,34 +48291,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47771,7 +48326,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47790,7 +48345,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47804,9 +48359,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47831,8 +48386,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47856,20 +48411,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47884,7 +48439,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47903,50 +48458,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -64076,6 +64631,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "Δεν υπάρχουν περιορισμοί χρήσης στην Godot" diff --git a/weblate/es.po b/weblate/es.po index 8a60378430..d02d09f13e 100644 --- a/weblate/es.po +++ b/weblate/es.po @@ -63,7 +63,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-08 08:59+0000\n" "Last-Translator: Ramiro Garay \n" "Language-Team: Spanish `_ markup " "language and then compiled into a static website/offline document using the " @@ -413,9 +419,10 @@ msgstr "" "usuarios nuevos." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "La sección :ref:`sec-tutorials`, por otro lado, se puede leer como sea " "necesario, en cualquier orden. Contiene varios tutoriales específicos a " @@ -432,9 +439,10 @@ msgstr "" "motor, desarrollar módulos C++ o plugins para el editor." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2235,10 +2243,11 @@ msgid "Conclusion" msgstr "Conclusión" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "Instanciar puede ser útil cuando quieres crear muchas copias de un mismo " "objeto. También es posible crear instancias desde el código usando GDScript, " @@ -2262,14 +2271,10 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "La habilidad de dividir escenas y hacerlas más fácil de manejar." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Una alternativa a prefabs, mas flexible, que talvez conozca de Unity (y " -"mucho más poderosa ya que las instancias pueden estar anidadas)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2277,11 +2282,11 @@ msgstr "" "Una manera de organizar flujos de juego complejos, incluso para UI (en " "godot, los elementos UI son nodos también)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Lenguaje de diseño" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2292,7 +2297,7 @@ msgstr "" "como un excelente lenguaje de diseño. Es lo que distingue a Godot de otros " "motores. Godot se diseñó desde su base en torno a este concepto." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2306,13 +2311,13 @@ msgstr "" "elementos visibles de tu juego, los que pueden ser nombrados no sólo por un " "programador, sino por cualquiera." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" "Por ejemplo, aquí hay un ejemplo sencillo de cómo puede verse un juego de " "disparos:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2322,7 +2327,7 @@ msgstr "" "Escribe las partes del juego que puedes visualizar y luego añade flechas " "para representar la propiedad de un componente por otro." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2334,7 +2339,7 @@ msgstr "" "instanciación (ya sea por código o directamente en el editor) para las " "relaciones de propiedad." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -2352,7 +2357,7 @@ msgstr "" "directamente con una escena, usar un diseño basado en instanciación de " "escenas implica muy poco código arquitectural adicional." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2360,7 +2365,7 @@ msgstr "" "Veamos un ejemplo, un poco más complejo, de un juego tipo mundo abierto con " "muchos recursos y elementos anidados:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2373,7 +2378,7 @@ msgstr "" "hacer una escena de casa (house), conectando habitaciones para conformar su " "interior." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2383,7 +2388,7 @@ msgstr "" "compuesta por muchas casas instanciadas. Entonces, podríamos empezar a " "trabajar en el terreno del mapa del mundo, añadiendo la ciudadela a él." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2393,7 +2398,7 @@ msgstr "" "NPCs) y también añadirlos a la ciudadela. Como resultado, se añadirían " "indirectamente al mundo del juego en general." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2409,11 +2414,11 @@ msgstr "" "involucrar artistas 2D o 3D, diseñadores de nivel, diseñadores de juegos y " "animadores, todos trabajando con la interfaz del editor." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "¡Sobrecarga de información!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2423,7 +2428,7 @@ msgstr "" "Sin embargo, la parte importante de este tutorial fue crear una conciencia " "de cómo se usan las escenas y la instanciación en proyectos reales." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -12744,8 +12749,8 @@ msgstr "Palabras clave" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -13463,11 +13468,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "float" @@ -13775,8 +13780,8 @@ msgstr "Datos" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "Variables" @@ -25103,8 +25108,8 @@ msgstr "Cada transform se puede obtener con las siguientes funciones:" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -26079,7 +26084,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "Organización" @@ -26697,309 +26702,94 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Skeleton" +msgid "2D meshes" +msgstr "Modelos" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 -msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 -msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 #, fuzzy -msgid "Creating the polygons" -msgstr "Crear una animación" +msgid "Converting Sprites to 2D meshes" +msgstr "Conversión de claves a texto" -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Configurando" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Personalizando la presentación" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -#, fuzzy -msgid "Internal vertices" -msgstr "Archivos Externos" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -45695,8 +45485,9 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" -msgstr "" +#, fuzzy +msgid "Making of GBot" +msgstr "Borrar una escena" #: ../../docs/tutorials/animation/cutout_animation.rst:57 msgid "" @@ -46117,7 +45908,7 @@ msgstr "" "extremidades sea mucho más sencilla." #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -46162,7 +45953,777 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Skeleton" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Crear una animación" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Configurando" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Personalizando la presentación" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +#, fuzzy +msgid "Internal vertices" +msgstr "Archivos Externos" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animación" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Crear una animación" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Creación de un proyecto" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +#, fuzzy +msgid "Blend tree" +msgstr "Blend Mode" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +#, fuzzy +msgid "OneShot" +msgstr "One Shot (Una Vez)" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Escala" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Traslación" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +#, fuzzy +msgid "StateMachine" +msgstr "Búsqueda" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "El tipo de transición" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Rotación" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +#, fuzzy +msgid "Controlling from code" +msgstr "Contribuyendo con el código" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -52106,7 +52667,7 @@ msgstr "Variables de entorno" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -52129,9 +52690,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -52149,35 +52711,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -52218,7 +52780,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -52246,8 +52808,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -52260,14 +52822,14 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 #, fuzzy msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" "Para más información sobre cómo maneja Godot las entradas, por favor lee el :" @@ -52293,20 +52855,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -52361,7 +52923,7 @@ msgstr "\"particles\": Para sistemas de partículas." #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -52439,9 +53001,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -52469,11 +53031,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -52497,10 +53059,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -52554,7 +53116,8 @@ msgid "**bvec2**" msgstr "**bvec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +#, fuzzy +msgid "Two-component vector of booleans." msgstr "Vector de dos componentes booleanas." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -52562,7 +53125,8 @@ msgid "**bvec3**" msgstr "**bvec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +#, fuzzy +msgid "Three-component vector of booleans." msgstr "Vector de tres componentes booleanas." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -52570,7 +53134,8 @@ msgid "**bvec4**" msgstr "**bvec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +#, fuzzy +msgid "Four-component vector of booleans." msgstr "Vector de cuatro componentes booleanas." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -52587,7 +53152,8 @@ msgid "**ivec2**" msgstr "**ivec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +#, fuzzy +msgid "Two-component vector of signed integers." msgstr "Vector de dos componentes de entero con signo." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -52595,7 +53161,8 @@ msgid "**ivec3**" msgstr "**ivec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +#, fuzzy +msgid "Three-component vector of signed integers." msgstr "Vector de tres componentes de enteros con signo." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -52603,7 +53170,8 @@ msgid "**ivec4**" msgstr "**ivec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +#, fuzzy +msgid "Four-component vector of signed integers." msgstr "Vector de cuatro componentes de enteros con signo." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -52611,7 +53179,8 @@ msgid "**uint**" msgstr "**uint**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +#, fuzzy +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "Escalar entero sin signo, no puede contener números negativos." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -52619,7 +53188,8 @@ msgid "**uvec2**" msgstr "**uvec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +#, fuzzy +msgid "Two-component vector of unsigned integers." msgstr "Vector de dos componentes de enteros sin signo." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -52627,7 +53197,8 @@ msgid "**uvec3**" msgstr "**uvec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +#, fuzzy +msgid "Three-component vector of unsigned integers." msgstr "Vector de tres componentes de enteros sin signo." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -52635,7 +53206,8 @@ msgid "**uvec4**" msgstr "**uvec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +#, fuzzy +msgid "Four-component vector of unsigned integers." msgstr "Vector de cuatro componentes de enteros sin signo." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -52653,7 +53225,8 @@ msgid "**vec2**" msgstr "**vec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +#, fuzzy +msgid "Two-component vector of floating point values." msgstr "Vector de dos componentes de valores de punto flotante." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -52662,7 +53235,8 @@ msgid "**vec3**" msgstr "**vec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +#, fuzzy +msgid "Three-component vector of floating point values." msgstr "Vector de tres componentes de valores de punto flotante." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -52672,7 +53246,8 @@ msgid "**vec4**" msgstr "**vec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +#, fuzzy +msgid "Four-component vector of floating point values." msgstr "Vector de cuatro componentes de valores de punto flotante." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -52712,7 +53287,8 @@ msgid "**sampler2D**" msgstr "**sampler2D**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +#, fuzzy +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" "Tipo Sampler para vincular texturas 2D, las cuales son leídas como float." @@ -52784,9 +53360,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 #, fuzzy msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" "Para matrices, se utiliza indexación m[fila][columna] para acceder a cada " "escalar, o m[índice] para acceder al vector por índice de fila. Por ejemplo, " @@ -52814,8 +53390,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -52842,8 +53418,9 @@ msgid "Precision" msgstr "Precisión" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 +#, fuzzy msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" "Es posible agregar modificadores de precisión a los tipos de datos, se " @@ -52863,13 +53440,14 @@ msgstr "" "la mayor parte del tiempo), pero normalmente se necesita en los fragment." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:173 +#, fuzzy msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" "Ten en cuenta que algunas arquitecturas (principalmente móviles) se " "benefician mucho de esto, pero también están restringidas (conversiones " @@ -53161,10 +53739,11 @@ msgstr "" "flujo:" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:236 +#, fuzzy msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" "Ten en cuenta que en GPUs modernas pueden generarse bucles infinitos y " "pueden congelar la aplicación (incluyendo el editor). Godot no te puede " @@ -53193,12 +53772,13 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +#, fuzzy +msgid "Function arguments can have special qualifiers:" msgstr "Los argumentos de las funciones pueden tener calificadores especiales:" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -53225,9 +53805,9 @@ msgstr "Varyings" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 #, fuzzy msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" "Para enviar datos desde el vértice al fragmento de shader, se utilizan " "*variaciones*. Se establecen para cada vértice primitivo en el *procesador " @@ -53261,7 +53841,8 @@ msgid "**flat**" msgstr "**flat**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +#, fuzzy +msgid "The value is not interpolated." msgstr "El valor no es interpolado" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -53269,9 +53850,10 @@ msgid "**smooth**" msgstr "**smooth**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 +#, fuzzy msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" "El valor es interpolado en una manera corregida por perspectiva. Es el modo " "por defecto" @@ -53311,8 +53893,8 @@ msgstr "" #, fuzzy msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" "Cualquier tipo excepto *void* puede ser un uniform. Adicionalmente, Godot " "provee shader hints opcionales para hacer que el compilador entienda para " @@ -53447,7 +54029,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" "Como el motor 3D de Godot genera las imágenes en espacio de color lineal, es " "importante comprender que las texturas que son asignadas como color (por " @@ -53813,7 +54395,8 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "vec_type **step** ( vec_type a, vec_type b )" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +#, fuzzy +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -53821,7 +54404,8 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "vec_type **step** ( float a, vec_type b )" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +#, fuzzy +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "\\` b[i] < a ? 0.0 : 1.0 \\`" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -53946,7 +54530,8 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +#, fuzzy +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "Si dot(Nref, I) < 0 retorna N, de otro modo –N" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -54451,14 +55036,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -54822,7 +55407,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -54839,7 +55425,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -54929,7 +55515,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -55158,14 +55744,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -55240,9 +55826,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -55250,7 +55836,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -55353,13 +55939,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -55467,9 +56053,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -55650,7 +56236,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -55673,7 +56259,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -55701,8 +56287,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -55778,7 +56364,7 @@ msgstr "Descargar el SDK de Android" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 #, fuzzy msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" "Puedes descargar este proyecto de ejemplo aquí: :download:`2D_movement_demo." @@ -55793,7 +56379,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -55803,18 +56389,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -55824,10 +56411,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -55853,7 +56440,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -55891,7 +56478,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -55914,14 +56501,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -55944,7 +56531,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -55966,10 +56553,13 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 +#, fuzzy msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" +"Para más información sobre cómo maneja Godot las entradas, por favor lee el :" +"ref:`Tutorial de Eventos de Entrada`." #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:17 msgid "GLSL" @@ -55989,8 +56579,8 @@ msgstr "Tipos de Shaders" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -55998,7 +56588,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -56009,10 +56599,10 @@ msgstr "``x.atribute``" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -56025,15 +56615,15 @@ msgstr "Condición" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -56046,21 +56636,21 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 #, fuzzy msgid "Main" msgstr "MainLoop" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -56083,76 +56673,76 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Variable" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 #, fuzzy msgid "vec4" msgstr "**vec4**" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -56181,9 +56771,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 #, fuzzy msgid "vec2" msgstr "**vec2**" @@ -56210,8 +56800,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 #, fuzzy msgid "Coordinates" msgstr "Sistema de coordenadas" @@ -56225,11 +56815,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -56247,40 +56837,39 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Tipo" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 #, fuzzy msgid "mainImage" msgstr "Importar imágenes" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -56292,191 +56881,191 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "fragColor" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 #, fuzzy msgid "iResolution" msgstr "Reflexión" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 #, fuzzy msgid "vec3" msgstr "**vec3**" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 #, fuzzy msgid "iChannelTime[4]" msgstr "Canales" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 #, fuzzy msgid "Mouse position in pixel coordinates." msgstr "Mouse y coordenadas de entrada" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 #, fuzzy msgid "iChanneli" msgstr "Canales" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 #, fuzzy msgid "Sampler2D" msgstr "**sampler2D**" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 #, fuzzy msgid "u_resolution" msgstr "relacional" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -56492,14 +57081,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -56572,7 +57161,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -56583,8 +57172,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -56621,7 +57210,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -56639,25 +57228,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -56672,7 +57261,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -56683,10 +57272,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -56700,22 +57289,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -56727,7 +57316,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -56747,23 +57336,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -56772,20 +57361,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -56810,8 +57399,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -56821,41 +57410,41 @@ msgstr "Interactuar con la luz" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -56870,34 +57459,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -56905,7 +57494,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -56925,7 +57514,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -56940,9 +57529,9 @@ msgstr "Captura de pantalla completa y ratón" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -56967,8 +57556,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -56992,20 +57581,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -57020,7 +57609,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -57040,50 +57629,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -73982,6 +74571,19 @@ msgstr "" "`Zeef Godot Engine: Un directorio de recursos supervisado por Andre Schmitz " "`_" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Una alternativa a prefabs, mas flexible, que talvez conozca de Unity (y " +#~ "mucho más poderosa ya que las instancias pueden estar anidadas)." + #, fuzzy #~ msgid "" #~ "Managing drawing logic of a large amount of simple objects (in the " diff --git a/weblate/es_MX.po b/weblate/es_MX.po index 709665ab08..deeb88b178 100644 --- a/weblate/es_MX.po +++ b/weblate/es_MX.po @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-08 08:59+0000\n" "Last-Translator: Reimer Chamale \n" "Language-Team: Spanish (Mexico) `_ markup " "language and then compiled into a static website/offline document using the " @@ -372,9 +378,10 @@ msgstr "" "usuarios nuevos." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "La sección :ref:`sec-tutorials`por otra parte, se puede leer según sea " "necesario, en cualquier orden. Contiene muchas funciones específicas " @@ -394,7 +401,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2203,10 +2210,11 @@ msgid "Conclusion" msgstr "Conclusión" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "Instanciar puede ser útil cuando quiere crear muchas copias del mismo " "objeto. También es posible crear instancias en código usando GDScript, ver :" @@ -2231,14 +2239,10 @@ msgstr "" "La capacidad de subdividir escenas y hacerlas más fáciles de administrar." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Una alternativa más flexible a los prefabricados que puedes conocer de Unity " -"(y mucho más potentes, dado que las instancias se pueden anidar)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2246,11 +2250,11 @@ msgstr "" "Una forma de organizar e integrar flujos de juegos complejos o incluso UI " "(en Godot, los elementos de las Interfaces de Usuario (UI) también son nodos." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Lenguaje de diseño" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2262,7 +2266,7 @@ msgstr "" "Godot de todos los otros motores que hay. Godot fue diseñado desde cero " "alrededor de este concepto." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2276,12 +2280,12 @@ msgstr "" "natural. Comienza imaginando los elementos visibles en tu juego, los que " "pueden ser nombrados no solo por un programador, sino por cualquier persona." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" "Por ejemplo, así es como se podía imaginar un simple juego de disparos:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2291,7 +2295,7 @@ msgstr "" "Escriba las partes del juego que puedes visualizar, y luego agrega flechas " "para representar la propiedad de un componente por otro." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2303,7 +2307,7 @@ msgstr "" "Utilizará instancias (ya sea por código o directamente en el editor) para " "las relaciones de propiedad." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 #, fuzzy msgid "" "A lot of time spent in programming games (or software in general) is on " @@ -2323,7 +2327,7 @@ msgstr "" "una instanciación de escena basada en diseño significa, que se necesita poco " "o otro código de arquitectura." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2331,7 +2335,7 @@ msgstr "" "Echemos un vistazo a un ejemplo más, algo más complejo, por ejemplo un juego " "tipo mundo abierto con muchos activos y elementos anidados:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2344,7 +2348,7 @@ msgstr "" "podríamos hacer una escena de la casa, conectando las habitaciones para " "formar su interior." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2354,7 +2358,7 @@ msgstr "" "muchas casas instanciadas. Entonces, podríamos comenzar a trabajar en el " "terreno del mapa, añadiendo la ciudadela en él." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2364,7 +2368,7 @@ msgstr "" "personajes no jugador (NPC) ) y agregarlos a la ciudadela también. Como " "resultado, se agregarían indirectamente al mundo del juego en general." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2381,11 +2385,11 @@ msgstr "" "diseñadores de juegos y animadores, todos trabajando con la interfaz del " "editor." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "¡Sobrecarga de información!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2396,7 +2400,7 @@ msgstr "" "crear una conciencia de cómo las escenas y las instancias se usan en " "proyectos reales." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -10513,8 +10517,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -11198,11 +11202,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -11447,8 +11451,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -20260,8 +20264,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -20999,7 +21003,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -21549,307 +21553,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 -msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 -msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 -msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 -msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 -msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 -msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 -msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 -msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 -msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "Creating the polygons" -msgstr "Configurando el proyecto" +msgid "2D meshes" +msgstr "Señales personalizadas" -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Escribiendo sentencias de código (scripting) en una escena" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Configurando el proyecto" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -38130,7 +37920,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -38533,7 +38323,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -38570,7 +38360,769 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Configurando el proyecto" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Escribiendo sentencias de código (scripting) en una escena" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Configurando el proyecto" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Notificaciones" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Eligiendo animaciones" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Agregar una secuencia de comandos (un script)" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Ejemplo de temporizador" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Animación de Sprite" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -44200,7 +44752,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -44223,9 +44775,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -44242,35 +44795,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -44310,7 +44863,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -44337,8 +44890,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -44351,13 +44904,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -44379,20 +44932,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -44435,7 +44988,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -44499,9 +45052,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -44524,11 +45077,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -44547,10 +45100,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -44601,7 +45154,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -44609,7 +45162,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -44617,7 +45170,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -44634,7 +45187,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -44642,7 +45195,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -44650,7 +45203,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -44658,7 +45211,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -44666,7 +45219,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -44674,7 +45227,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -44682,7 +45235,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -44700,7 +45253,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -44709,7 +45262,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -44719,7 +45272,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -44759,7 +45312,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -44814,9 +45367,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -44836,8 +45389,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -44861,7 +45414,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -44878,9 +45431,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -45163,7 +45716,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -45184,12 +45737,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -45215,9 +45768,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -45243,7 +45796,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -45253,7 +45806,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -45285,8 +45838,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -45413,7 +45966,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -45770,7 +46323,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -45778,7 +46331,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -45903,7 +46456,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -46400,14 +46953,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -46766,7 +47319,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -46783,7 +47337,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -46873,7 +47427,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -47099,14 +47653,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -47181,9 +47735,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -47191,7 +47745,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -47293,13 +47847,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -47405,9 +47959,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -47587,7 +48141,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -47610,7 +48164,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -47638,8 +48192,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -47708,7 +48262,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -47721,7 +48275,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -47731,18 +48285,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -47752,10 +48307,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -47781,7 +48336,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -47819,7 +48374,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -47842,14 +48397,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -47872,7 +48427,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -47894,7 +48449,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -47915,8 +48470,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -47924,7 +48479,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -47934,10 +48489,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -47949,15 +48504,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -47970,20 +48525,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -48006,75 +48561,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -48102,9 +48657,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -48129,8 +48684,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -48143,11 +48698,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -48164,38 +48719,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -48207,184 +48761,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -48400,14 +48954,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -48480,7 +49034,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -48491,8 +49045,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -48529,7 +49083,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -48547,25 +49101,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -48580,7 +49134,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -48591,10 +49145,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -48608,22 +49162,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -48635,7 +49189,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -48654,23 +49208,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -48679,20 +49233,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -48717,8 +49271,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -48728,41 +49282,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -48777,34 +49331,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -48812,7 +49366,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -48831,7 +49385,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -48845,9 +49399,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -48872,8 +49426,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -48897,20 +49451,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -48925,7 +49479,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -48944,50 +49498,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -65105,6 +65659,19 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Una alternativa más flexible a los prefabricados que puedes conocer de " +#~ "Unity (y mucho más potentes, dado que las instancias se pueden anidar)." + #~ msgid "" #~ "If you're using C#, you need to restart Godot editor temporarily to see " #~ "exported variables in the editor until it's fixed." diff --git a/weblate/fa.po b/weblate/fa.po index b7765e5986..f6c2e66b54 100644 --- a/weblate/fa.po +++ b/weblate/fa.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-11-20 10:45+0000\n" "Last-Translator: Mahdi \n" "Language-Team: Persian `_ markup " "language and then compiled into a static website/offline document using the " @@ -351,9 +357,10 @@ msgstr "" "جدید باشد." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "بخش :ref:`sec-tutorials` در صورت نیاز میتواند با هر ترتیبی خوانده شود. این " "بخش شامل تعداد زیادی آموزش و مستندات مربوط به خصوصیات موتور است." @@ -371,7 +378,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1712,7 +1719,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1732,22 +1739,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1755,7 +1760,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1764,18 +1769,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1783,7 +1788,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1794,13 +1799,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1808,21 +1813,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1832,18 +1837,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9329,8 +9334,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10017,11 +10022,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10266,8 +10271,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19076,8 +19081,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19815,7 +19820,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20365,306 +20370,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "تولید محتوا" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "تولید محتوا" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36920,7 +36711,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37323,7 +37114,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37360,7 +37151,768 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "تولید محتوا" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "تولید محتوا" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "شرط" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "تولید محتوا" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "تولید محتوا" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "شرط" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "شرط" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42988,7 +43540,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43011,9 +43563,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43030,35 +43583,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43098,7 +43651,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43125,8 +43678,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43139,13 +43692,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43167,20 +43720,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43223,7 +43776,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43286,9 +43839,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43311,11 +43864,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43334,10 +43887,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43388,7 +43941,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43396,7 +43949,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43404,7 +43957,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43421,7 +43974,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43429,7 +43982,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43437,7 +43990,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43445,7 +43998,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43453,7 +44006,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43461,7 +44014,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43469,7 +44022,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43487,7 +44040,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43496,7 +44049,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43506,7 +44059,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43546,7 +44099,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43601,9 +44154,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43623,8 +44176,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43648,7 +44201,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43665,9 +44218,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43950,7 +44503,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43971,12 +44524,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44002,9 +44555,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44030,7 +44583,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44040,7 +44593,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44072,8 +44625,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44198,7 +44751,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44554,7 +45107,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44562,7 +45115,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44687,7 +45240,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45184,14 +45737,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45550,7 +46103,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45567,7 +46121,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45657,7 +46211,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45882,14 +46436,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45964,9 +46518,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45974,7 +46528,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46076,13 +46630,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46188,9 +46742,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46370,7 +46924,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46393,7 +46947,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46421,8 +46975,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46491,7 +47045,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46504,7 +47058,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46514,18 +47068,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46535,10 +47090,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46564,7 +47119,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46602,7 +47157,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46625,14 +47180,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46655,7 +47210,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46677,7 +47232,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46698,8 +47253,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46707,7 +47262,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46717,10 +47272,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46733,15 +47288,15 @@ msgstr "شرط" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46754,20 +47309,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46790,75 +47345,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46886,9 +47441,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46913,8 +47468,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46927,11 +47482,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46948,38 +47503,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46991,184 +47545,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47184,14 +47738,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47264,7 +47818,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47275,8 +47829,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47313,7 +47867,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47331,25 +47885,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47364,7 +47918,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47375,10 +47929,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47392,22 +47946,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47419,7 +47973,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47438,23 +47992,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47463,20 +48017,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47501,8 +48055,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47512,41 +48066,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47561,34 +48115,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47596,7 +48150,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47615,7 +48169,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47629,9 +48183,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47656,8 +48210,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47681,20 +48235,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47709,7 +48263,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47728,50 +48282,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63885,6 +64439,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "Export Templates" #~ msgstr "منوی خروجی گرفتن" diff --git a/weblate/fi.po b/weblate/fi.po index 3c6095250d..ad5b099ec6 100644 --- a/weblate/fi.po +++ b/weblate/fi.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-09 09:13+0000\n" "Last-Translator: Tapani Niemi \n" "Language-Team: Finnish `_ markup " "language and then compiled into a static website/offline document using the " @@ -355,9 +361,10 @@ msgstr "" "jonka tulisi olla aloituspiste kaikille uusille käyttäjille." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" ":ref:`sec-tutorials` osuutta voidaan toisaalta lukea tarvittaessa ja missä " "tahansa järjestyksessä. Se sisältää monia ominaisuuskohtaisia tutoriaaleja " @@ -374,9 +381,10 @@ msgstr "" "editorin liitännäisten kehittämisestä." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2151,10 +2159,11 @@ msgid "Conclusion" msgstr "Lopputulos" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "Ilmentymien luonti voi olla hyödyllistä, kun haluat luoda useita kopioita " "samasta objektista. On myös mahdollista luoda ilmentymiä koodissa " @@ -2179,15 +2188,10 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "Mahdollisuus jakaa skenet osiin ja tehdä niistä helpommin hallittavia." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -#, fuzzy -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Joustavampi vaihtoehto prefabeille (ja paljon tehokkaampi, koska niitä voi " -"laittaa sisäkkäin)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2195,11 +2199,11 @@ msgstr "" "Tapa järjestää ja sisältää monimutkaisia pelimalleja tai jopa " "käyttöliittymiä (Godotissa myös käyttöliittymäelementit ovat solmuja)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Suunnittelukieli" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2211,7 +2215,7 @@ msgstr "" "kaikista muista olemassa olevista pelimoottoreista. Godot on suunniteltu " "alusta saakka tämän ajatuksen ympärille." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2225,11 +2229,11 @@ msgstr "" "näkyvät elementit, ne jotka kuka tahansa pystyy nimeämään, ei vain " "ohjelmoija." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "Esimerkiksi, yksinkertaisen ampumispelin voisi kuvitella näin:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2239,7 +2243,7 @@ msgstr "" "pelille. Kirjoita ylös ne pelin osat, jotka voit visualisoida, ja lisää " "sitten nuolet kuvastamaan komponenttien omistussuhteita toisistaan." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2250,7 +2254,7 @@ msgstr "" "luoda skene kutakin kaaviossa lueteltua elementtiä kohden. Käytät ilmentymiä " "(joko koodista tai suoraan editorista käsin) omistajuussuhteita varten." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 #, fuzzy msgid "" "A lot of time spent in programming games (or software in general) is on " @@ -2270,7 +2274,7 @@ msgstr "" "pohjautuvan suunnittelun käyttö tarkoittaa, että hyvin vähän muuta " "arkkitehtuurista koodia tarvitaan." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2279,7 +2283,7 @@ msgstr "" "maailman tyyppisestä pelistä, jossa on paljon assetteja ja muita sisäkkäisiä " "elementtejä:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2291,7 +2295,7 @@ msgstr "" "järjestyksillä. Myöhemmin, voisimme tehdä taloskenen, yhdistäen huoneet sen " "sisätiloiksi." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2301,7 +2305,7 @@ msgstr "" "ilmentymistä. Sitten voisimme alkaa työstää maailmankarttaa, lisäten " "linnoituksen siihen." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2311,7 +2315,7 @@ msgstr "" "pelaajahahmoja) ja lisätä ne myös linnoitukseen. Sen seurauksena ne " "lisättäisiin epäsuorasti koko pelimaailmaan." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2325,11 +2329,11 @@ msgstr "" "editorin käyttöliittymä on suunniteltu helppokäyttöiseksi yhtä lailla " "ohjelmoijille kuin ei-ohjelmoijillekin." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "Informaatioähky!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2339,7 +2343,7 @@ msgstr "" "Oli miten oli, tämän oppaan tärkein osuus oli lisätä tietoisuutta siitä " "kuinka skenejä ja niiden ilmentymiä käytetään oikeissa projekteissa." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -10634,8 +10638,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -11319,11 +11323,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -11568,8 +11572,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -20449,8 +20453,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -21188,7 +21192,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -21738,309 +21742,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -#, fuzzy -msgid "2D skeletons" -msgstr "Luuranko" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" +msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Planeetan värjäys" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Skenen pystytys" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Planeetan värjäys" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -#, fuzzy -msgid "Internal vertices" -msgstr "Sisäiset resurssit" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -38315,7 +38102,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -38718,7 +38505,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -38755,7 +38542,772 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Luuranko" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Planeetan värjäys" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Skenen pystytys" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Planeetan värjäys" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +#, fuzzy +msgid "Internal vertices" +msgstr "Sisäiset resurssit" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animaatio" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Animaatioiden valinta" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Skriptin lisäys" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Järjestys" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Joitakin asioita on otettava huomioon:" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Tuonti" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -44384,7 +44936,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -44407,9 +44959,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -44426,35 +44979,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -44494,7 +45047,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -44521,8 +45074,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -44535,13 +45088,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -44563,20 +45116,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -44619,7 +45172,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -44683,9 +45236,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -44708,11 +45261,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -44731,10 +45284,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -44785,7 +45338,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -44793,7 +45346,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -44801,7 +45354,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -44818,7 +45371,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -44826,7 +45379,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -44834,7 +45387,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -44842,7 +45395,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -44850,7 +45403,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -44858,7 +45411,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -44866,7 +45419,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -44884,7 +45437,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -44893,7 +45446,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -44903,7 +45456,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -44943,7 +45496,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -44998,9 +45551,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -45020,8 +45573,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -45045,7 +45598,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -45062,9 +45615,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -45347,7 +45900,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -45368,12 +45921,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -45399,9 +45952,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -45427,7 +45980,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -45437,7 +45990,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -45469,8 +46022,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -45600,7 +46153,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -45957,7 +46510,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -45965,7 +46518,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -46090,7 +46643,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -46587,14 +47140,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -46953,7 +47506,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -46970,7 +47524,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -47060,7 +47614,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -47286,14 +47840,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -47368,9 +47922,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -47378,7 +47932,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -47480,13 +48034,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -47593,9 +48147,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -47775,7 +48329,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -47798,7 +48352,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -47826,8 +48380,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -47896,7 +48450,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -47909,7 +48463,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -47919,18 +48473,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -47940,10 +48495,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -47969,7 +48524,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -48007,7 +48562,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -48030,14 +48585,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -48060,7 +48615,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -48082,7 +48637,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -48103,8 +48658,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -48112,7 +48667,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -48122,10 +48677,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -48137,15 +48692,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -48158,20 +48713,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -48194,75 +48749,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Muuttuja" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -48290,9 +48845,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -48317,8 +48872,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -48331,11 +48886,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -48352,38 +48907,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "Tyypit" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -48395,184 +48949,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "fragColor" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -48588,14 +49142,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -48668,7 +49222,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -48679,8 +49233,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -48717,7 +49271,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -48735,25 +49289,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -48768,7 +49322,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -48779,10 +49333,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -48796,22 +49350,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -48823,7 +49377,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -48842,23 +49396,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -48867,20 +49421,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -48905,8 +49459,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -48916,41 +49470,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -48965,34 +49519,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -49000,7 +49554,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -49019,7 +49573,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -49033,9 +49587,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -49060,8 +49614,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -49085,20 +49639,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -49113,7 +49667,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -49133,50 +49687,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -65413,6 +65967,20 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#, fuzzy +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Joustavampi vaihtoehto prefabeille (ja paljon tehokkaampi, koska niitä " +#~ "voi laittaa sisäkkäin)." + #, fuzzy #~ msgid "" #~ "If you're using C#, you need to restart Godot editor temporarily to see " diff --git a/weblate/fil.po b/weblate/fil.po index 1f9cad1915..08d9b68d97 100644 --- a/weblate/fil.po +++ b/weblate/fil.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-05-15 01:36+0000\n" "Last-Translator: Daris C. Mondigo \n" "Language-Team: Filipino `_ markup " "language and then compiled into a static website/offline document using the " @@ -280,8 +282,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -294,7 +296,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1629,7 +1631,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1649,22 +1651,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1672,7 +1672,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1681,18 +1681,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1700,7 +1700,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1711,13 +1711,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1725,21 +1725,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1749,18 +1749,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9243,8 +9243,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9929,11 +9929,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10178,8 +10178,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -18968,8 +18968,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19707,7 +19707,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20257,304 +20257,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36808,7 +36596,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37211,7 +36999,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37248,7 +37036,761 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +msgid "Creating an AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +msgid "Creating a tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42876,7 +43418,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42899,9 +43441,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42918,35 +43461,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -42986,7 +43529,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43013,8 +43556,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43027,13 +43570,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43055,20 +43598,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43111,7 +43654,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43174,9 +43717,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43199,11 +43742,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43222,10 +43765,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43276,7 +43819,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43284,7 +43827,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43292,7 +43835,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43309,7 +43852,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43317,7 +43860,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43325,7 +43868,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43333,7 +43876,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43341,7 +43884,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43349,7 +43892,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43357,7 +43900,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43375,7 +43918,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43384,7 +43927,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43394,7 +43937,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43434,7 +43977,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43489,9 +44032,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43511,8 +44054,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43536,7 +44079,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43553,9 +44096,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43838,7 +44381,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43859,12 +44402,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43890,9 +44433,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43918,7 +44461,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43928,7 +44471,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -43960,8 +44503,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44086,7 +44629,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44442,7 +44985,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44450,7 +44993,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44575,7 +45118,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45072,14 +45615,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45438,7 +45981,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45455,7 +45999,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45545,7 +46089,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45770,14 +46314,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45852,9 +46396,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45862,7 +46406,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -45964,13 +46508,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46076,9 +46620,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46258,7 +46802,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46281,7 +46825,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46309,8 +46853,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46379,7 +46923,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46392,7 +46936,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46402,18 +46946,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46423,10 +46968,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46452,7 +46997,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46490,7 +47035,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46513,14 +47058,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46543,7 +47088,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46565,7 +47110,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46586,8 +47131,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46595,7 +47140,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46605,10 +47150,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46620,15 +47165,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46641,20 +47186,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46677,75 +47222,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46773,9 +47318,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46800,8 +47345,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46814,11 +47359,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46835,38 +47380,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46878,184 +47422,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47071,14 +47615,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47151,7 +47695,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47162,8 +47706,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47200,7 +47744,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47218,25 +47762,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47251,7 +47795,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47262,10 +47806,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47279,22 +47823,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47306,7 +47850,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47325,23 +47869,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47350,20 +47894,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47388,8 +47932,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47399,41 +47943,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47448,34 +47992,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47483,7 +48027,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47502,7 +48046,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47516,9 +48060,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47543,8 +48087,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47568,20 +48112,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47596,7 +48140,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47615,50 +48159,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63762,3 +64306,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/fr.po b/weblate/fr.po index 2e0e6a9fc8..ef4c531ca7 100644 --- a/weblate/fr.po +++ b/weblate/fr.po @@ -66,7 +66,7 @@ msgid "" msgstr "" "Project-Id-Version: French (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-09 09:13+0000\n" "Last-Translator: Alexandre Fiale \n" "Language-Team: French `_ markup " "language and then compiled into a static website/offline document using the " @@ -414,9 +420,10 @@ msgstr "" "step_by_step>`est une introduction parfaite pour tout nouvel utilisateur." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "La section :ref:`sec-tutorials`, quant à elle, peut être lue au besoin, dans " "n'importe quel ordre. Elle contient de nombreux exemples et documents " @@ -434,9 +441,10 @@ msgstr "" "l’éditeur." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2258,10 +2266,11 @@ msgid "Conclusion" msgstr "Conclusion" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "L'instanciation peut être utile lorsque vous voulez créer plusieurs copies " "d'un même objet. Il est également possible de créer des instances dans le " @@ -2288,15 +2297,10 @@ msgstr "" "gérer." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Une alternative plus flexible aux prefabs que vous connaissez d'Unity (et " -"beaucoup plus puissante étant donné que les instances peuvent être " -"imbriquées)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2305,11 +2309,11 @@ msgstr "" "interfaces utilisateur (dans Godot, les éléments d'interface utilisateur " "sont aussi des nœuds)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Langage de conception" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2321,7 +2325,7 @@ msgstr "" "ce qui distingue Godot de tous les autres moteurs. Godot a été conçu dès le " "départ autour de ce concept." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2336,11 +2340,11 @@ msgstr "" "dans votre jeu, ceux qui peuvent être nommés non seulement par un " "programmeur, mais par n'importe qui." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "Par exemple, voici comment imaginer un simple jeu de tir :" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2350,7 +2354,7 @@ msgstr "" "jeux. Notez les parties du jeu que vous pouvez visualiser, puis ajoutez des " "flèches pour représenter la possession d'un composant par un autre." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2362,7 +2366,7 @@ msgstr "" "le diagramme. Vous utiliserez l'instanciation (soit par code ou directement " "dans l'éditeur) pour les relations de possession." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -2381,7 +2385,7 @@ msgstr "" "l'utilisation d'un design basé sur l'instanciation de la scène signifie que " "peu d'autres codes architecturaux sont nécessaires." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2390,7 +2394,7 @@ msgstr "" "jeu de type monde ouvert avec beaucoup de ressources et d'éléments " "imbriqués :" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2404,7 +2408,7 @@ msgstr "" "\" (maison) faisant la connexion entre les différentes scènes \"room\" et en " "créer ainsi l'intérieur." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2414,7 +2418,7 @@ msgstr "" "nombreuses maisons instanciées. Ensuite, nous pourrions commencer à " "travailler sur le terrain de la carte du monde, en y ajoutant la citadelle." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2424,7 +2428,7 @@ msgstr "" "d'autres PNJs) et les ajouter à la citadelle. En conséquence, ils seraient " "indirectement ajoutés à l'ensemble du monde du jeu." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2441,11 +2445,11 @@ msgstr "" "de niveaux, des concepteurs de jeux et des animateurs, tous travaillant avec " "l'interface de l'éditeur." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "Surcharge d'informations !" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2456,7 +2460,7 @@ msgstr "" "prendre conscience de la manière dont les scènes et l'instanciation sont " "utilisées dans de vrais projets." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -13159,8 +13163,8 @@ msgstr "Mot-clé" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -13892,11 +13896,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "float" @@ -14207,8 +14211,8 @@ msgstr "Données" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "Variables" @@ -25935,8 +25939,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -26919,7 +26923,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "Configuration" @@ -27680,309 +27684,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Squelette" +msgid "2D meshes" +msgstr "Maillages" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Créer l'animation" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Mise en place" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Compilation" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -#, fuzzy -msgid "Internal vertices" -msgstr "Fichiers externes" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -44486,8 +44274,9 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" -msgstr "" +#, fuzzy +msgid "Making of GBot" +msgstr "Créer des arbres" #: ../../docs/tutorials/animation/cutout_animation.rst:57 msgid "" @@ -44889,7 +44678,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -44926,7 +44715,775 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Squelette" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Créer l'animation" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Mise en place" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Compilation" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +#, fuzzy +msgid "Internal vertices" +msgstr "Fichiers externes" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animation" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Créer l'animation" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Créer un projet" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +#, fuzzy +msgid "Blend tree" +msgstr "Mode de fusion" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +#, fuzzy +msgid "OneShot" +msgstr "Un coup" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Scale" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Transmission" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Le type de transition" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Rotation" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -50575,7 +51132,7 @@ msgstr "Environnement" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -50598,9 +51155,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -50618,35 +51176,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -50687,7 +51245,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -50715,8 +51273,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -50729,13 +51287,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -50759,20 +51317,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -50816,7 +51374,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -50882,9 +51440,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -50908,11 +51466,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -50932,10 +51490,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -50986,7 +51544,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -50994,7 +51552,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -51002,7 +51560,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -51019,7 +51577,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -51027,7 +51585,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -51035,7 +51593,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -51043,7 +51601,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -51051,7 +51609,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -51059,7 +51617,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -51067,7 +51625,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -51085,7 +51643,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -51094,7 +51652,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -51104,7 +51662,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -51144,7 +51702,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -51199,9 +51757,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -51221,8 +51779,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -51246,7 +51804,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -51263,9 +51821,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -51549,7 +52107,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -51570,12 +52128,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -51601,9 +52159,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -51629,7 +52187,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -51639,7 +52197,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -51671,8 +52229,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -51803,7 +52361,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -52160,7 +52718,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -52168,7 +52726,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -52293,7 +52851,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -52793,14 +53351,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -53161,7 +53719,8 @@ msgstr "out float **ALPHA**" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -53177,8 +53736,9 @@ msgid "out float **SPECULAR**" msgstr "out float **SPECULAR**" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 +#, fuzzy msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" "Specular. Defaults to 0.5, best to not modify unless you want to change IOR." @@ -53269,7 +53829,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "out float **AO_LIGHT_AFFECT**" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -53498,14 +54058,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -53584,9 +54144,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -53594,7 +54154,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -53703,13 +54263,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -53821,9 +54381,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -54008,7 +54568,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -54031,7 +54591,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -54059,8 +54619,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -54134,10 +54694,13 @@ msgid "Download the source code" msgstr "Télécharger le SDK Android" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 +#, fuzzy msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" +"Vous pouvez télécharger cet exemple de projet ici: :download:" +"`2D_movement_demo.zip `" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:40 msgid "" @@ -54148,7 +54711,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -54158,18 +54721,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -54179,10 +54743,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -54208,7 +54772,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -54246,7 +54810,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -54269,14 +54833,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -54299,7 +54863,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -54322,7 +54886,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -54343,8 +54907,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -54352,7 +54916,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -54363,10 +54927,10 @@ msgstr "``x.attribut``" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -54379,15 +54943,15 @@ msgstr "Condition" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -54400,21 +54964,21 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 #, fuzzy msgid "Main" msgstr "Boucle événementielle" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -54437,77 +55001,77 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Variable" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 #, fuzzy msgid "out vec4" msgstr "out vec4 **LIGHT**" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 #, fuzzy msgid "FRAGCOORD" msgstr "in vec4 **FRAGCOORD**" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -54535,9 +55099,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -54564,8 +55128,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -54578,11 +55142,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -54599,40 +55163,39 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Type" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 #, fuzzy msgid "mainImage" msgstr "Importer des images" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -54644,191 +55207,191 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Couleur" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 #, fuzzy msgid "iResolution" msgstr "Rotation" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 #, fuzzy msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "in vec2 **SCREEN_PIXEL_SIZE**" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 #, fuzzy msgid "iChannelTime[4]" msgstr "Chaines" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 #, fuzzy msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "in vec2 **TEXTURE_PIXEL_SIZE**" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 #, fuzzy msgid "iChanneli" msgstr "Chaines" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 #, fuzzy msgid "Sampler2D" msgstr "Exemple" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -54844,14 +55407,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -54924,7 +55487,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -54935,8 +55498,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -54973,7 +55536,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -54991,25 +55554,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -55024,7 +55587,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -55035,10 +55598,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -55052,22 +55615,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -55079,7 +55642,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -55098,23 +55661,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -55123,20 +55686,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -55161,8 +55724,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -55172,41 +55735,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -55221,34 +55784,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -55256,7 +55819,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -55276,7 +55839,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -55291,9 +55854,9 @@ msgstr "Capture plein écran et à la souris" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -55318,8 +55881,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -55343,20 +55906,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -55371,7 +55934,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -55391,50 +55954,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -71828,6 +72391,20 @@ msgstr "" "`Zeef Godot Engine : Un répertoire de ressources créé par Andre Schmitz " "`_" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Une alternative plus flexible aux prefabs que vous connaissez d'Unity (et " +#~ "beaucoup plus puissante étant donné que les instances peuvent être " +#~ "imbriquées)." + #, fuzzy #~ msgid "" #~ "Managing drawing logic of a large amount of simple objects (in the " diff --git a/weblate/he.po b/weblate/he.po index 6d279f6286..aad7c267e3 100644 --- a/weblate/he.po +++ b/weblate/he.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-13 10:15+0000\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew `_ markup " "language and then compiled into a static website/offline document using the " @@ -332,9 +338,10 @@ msgid "" msgstr "" #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "את הסעיף :ref:`sec-tutorials`, מצד שני, ניתן לקרוא במקרה הצורך בכל סדר שהוא. " "הסעיף מכיל הרבה מדריכים ותיעוד למאפיינים מסוימים." @@ -351,7 +358,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1705,7 +1712,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1725,22 +1732,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1748,7 +1753,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1757,18 +1762,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1776,7 +1781,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1787,13 +1792,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1801,21 +1806,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1825,18 +1830,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9328,8 +9333,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10018,11 +10023,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10267,8 +10272,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19071,8 +19076,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19810,7 +19815,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20360,306 +20365,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 -msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 -msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 -msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 -msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 -msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 -msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 -msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 -msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 -msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "Creating the polygons" -msgstr "יצירת תוכן" +msgid "2D meshes" +msgstr "אותות" -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "יצירת תוכן" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36917,7 +36709,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37320,7 +37112,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37357,7 +37149,768 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "יצירת תוכן" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "יצירת תוכן" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "אנימציות" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "אנימציות" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "יצירת תוכן" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "התמרה" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "אין מגבלות שימוש בגודוט" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42985,7 +43538,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43008,9 +43561,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43027,35 +43581,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43095,7 +43649,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43122,8 +43676,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43136,13 +43690,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43164,20 +43718,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43220,7 +43774,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43283,9 +43837,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43308,11 +43862,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43331,10 +43885,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43385,7 +43939,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43393,7 +43947,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43401,7 +43955,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43418,7 +43972,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43426,7 +43980,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43434,7 +43988,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43442,7 +43996,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43450,7 +44004,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43458,7 +44012,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43466,7 +44020,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43484,7 +44038,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43493,7 +44047,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43503,7 +44057,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43543,7 +44097,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43598,9 +44152,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43620,8 +44174,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43645,7 +44199,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43662,9 +44216,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43947,7 +44501,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43968,12 +44522,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43999,9 +44553,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44027,7 +44581,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44037,7 +44591,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44069,8 +44623,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44198,7 +44752,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44554,7 +45108,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44562,7 +45116,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44687,7 +45241,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45184,14 +45738,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45550,7 +46104,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45567,7 +46122,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45657,7 +46212,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45883,14 +46438,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45965,9 +46520,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45975,7 +46530,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46077,13 +46632,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46189,9 +46744,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46371,7 +46926,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46394,7 +46949,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46422,8 +46977,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46492,7 +47047,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46505,7 +47060,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46515,18 +47070,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46536,10 +47092,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46565,7 +47121,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46603,7 +47159,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46626,14 +47182,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46656,7 +47212,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46678,7 +47234,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46699,8 +47255,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46708,7 +47264,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46718,10 +47274,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46733,15 +47289,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46754,20 +47310,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46790,75 +47346,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46886,9 +47442,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46913,8 +47469,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46927,11 +47483,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46948,38 +47504,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46991,184 +47546,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47184,14 +47739,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47264,7 +47819,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47275,8 +47830,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47313,7 +47868,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47331,25 +47886,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47364,7 +47919,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47375,10 +47930,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47392,22 +47947,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47419,7 +47974,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47438,23 +47993,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47463,20 +48018,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47501,8 +48056,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47512,41 +48067,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47561,34 +48116,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47596,7 +48151,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47615,7 +48170,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47629,9 +48184,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47656,8 +48211,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47681,20 +48236,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47709,7 +48264,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47728,50 +48283,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63887,6 +64442,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "אין מגבלות שימוש בגודוט" diff --git a/weblate/hi.po b/weblate/hi.po index f41981ef65..396d17d7ec 100644 --- a/weblate/hi.po +++ b/weblate/hi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-10-07 19:28+0000\n" "Last-Translator: Vikram1323 \n" "Language-Team: Hindi `_ markup " "language and then compiled into a static website/offline document using the " @@ -306,8 +308,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -320,7 +322,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1655,7 +1657,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1675,22 +1677,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1698,7 +1698,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1707,18 +1707,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1726,7 +1726,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1737,13 +1737,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1751,21 +1751,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1775,18 +1775,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9269,8 +9269,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9954,11 +9954,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10203,8 +10203,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -18997,8 +18997,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19736,7 +19736,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20286,306 +20286,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "सामग्री बनाना" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "सामग्री बनाना" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36840,7 +36626,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37243,7 +37029,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37280,7 +37066,766 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "सामग्री बनाना" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "सामग्री बनाना" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "सामग्री बनाना" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "सामग्री बनाना" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "सामग्री बनाना" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42908,7 +43453,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42931,9 +43476,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42950,35 +43496,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43018,7 +43564,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43045,8 +43591,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43059,13 +43605,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43087,20 +43633,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43143,7 +43689,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43206,9 +43752,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43231,11 +43777,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43254,10 +43800,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43308,7 +43854,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43316,7 +43862,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43324,7 +43870,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43341,7 +43887,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43349,7 +43895,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43357,7 +43903,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43365,7 +43911,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43373,7 +43919,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43381,7 +43927,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43389,7 +43935,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43407,7 +43953,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43416,7 +43962,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43426,7 +43972,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43466,7 +44012,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43521,9 +44067,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43543,8 +44089,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43568,7 +44114,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43585,9 +44131,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43870,7 +44416,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43891,12 +44437,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43922,9 +44468,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43950,7 +44496,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43960,7 +44506,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -43992,8 +44538,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44118,7 +44664,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44474,7 +45020,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44482,7 +45028,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44607,7 +45153,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45104,14 +45650,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45470,7 +46016,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45487,7 +46034,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45577,7 +46124,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45802,14 +46349,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45884,9 +46431,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45894,7 +46441,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -45996,13 +46543,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46108,9 +46655,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46290,7 +46837,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46313,7 +46860,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46341,8 +46888,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46411,7 +46958,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46424,7 +46971,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46434,18 +46981,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46455,10 +47003,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46484,7 +47032,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46522,7 +47070,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46545,14 +47093,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46575,7 +47123,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46597,7 +47145,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46618,8 +47166,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46627,7 +47175,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46637,10 +47185,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46652,15 +47200,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46673,20 +47221,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46709,75 +47257,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46805,9 +47353,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46832,8 +47380,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46846,11 +47394,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46867,38 +47415,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46910,184 +47457,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47103,14 +47650,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47183,7 +47730,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47194,8 +47741,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47232,7 +47779,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47250,25 +47797,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47283,7 +47830,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47294,10 +47841,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47311,22 +47858,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47338,7 +47885,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47357,23 +47904,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47382,20 +47929,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47420,8 +47967,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47431,41 +47978,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47480,34 +48027,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47515,7 +48062,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47534,7 +48081,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47548,9 +48095,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47575,8 +48122,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47600,20 +48147,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47628,7 +48175,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47647,50 +48194,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63795,3 +64342,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/hu.po b/weblate/hu.po index f880b9d4ed..1d6ca888fe 100644 --- a/weblate/hu.po +++ b/weblate/hu.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-13 10:15+0000\n" "Last-Translator: Gabor Csordas \n" "Language-Team: Hungarian `_ markup " "language and then compiled into a static website/offline document using the " @@ -356,9 +362,10 @@ msgstr "" "felhasználó számára." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "Másrészt a :ref:`sec-tutorials` szakaszt, lehet olvasni szükség szerint, " "tetszőleges sorrendben. Számos funkció-specifikus, oktató- és dokumentációs " @@ -378,7 +385,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1739,7 +1746,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1759,22 +1766,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1782,7 +1787,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1791,18 +1796,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1810,7 +1815,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1821,13 +1826,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1835,21 +1840,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1859,18 +1864,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9358,8 +9363,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10044,11 +10049,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10293,8 +10298,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19098,8 +19103,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19838,7 +19843,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20388,304 +20393,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36944,7 +36737,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37347,7 +37140,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37384,7 +37177,766 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animáció" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Animáció" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Első lépések" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Animáció" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Nincs felhasználási korlátozás a Godot-ra" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43012,7 +43564,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43035,9 +43587,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43054,35 +43607,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43122,7 +43675,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43149,8 +43702,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43163,13 +43716,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43191,20 +43744,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43247,7 +43800,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43310,9 +43863,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43335,11 +43888,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43358,10 +43911,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43412,7 +43965,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43420,7 +43973,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43428,7 +43981,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43445,7 +43998,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43453,7 +44006,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43461,7 +44014,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43469,7 +44022,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43477,7 +44030,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43485,7 +44038,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43493,7 +44046,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43511,7 +44064,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43520,7 +44073,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43530,7 +44083,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43570,7 +44123,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43625,9 +44178,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43647,8 +44200,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43672,7 +44225,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43689,9 +44242,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43974,7 +44527,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43995,12 +44548,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44026,9 +44579,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44054,7 +44607,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44064,7 +44617,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44096,8 +44649,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44223,7 +44776,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44579,7 +45132,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44587,7 +45140,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44712,7 +45265,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45209,14 +45762,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45575,7 +46128,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45592,7 +46146,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45682,7 +46236,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45908,14 +46462,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45990,9 +46544,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46000,7 +46554,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46102,13 +46656,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46215,9 +46769,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46397,7 +46951,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46420,7 +46974,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46448,8 +47002,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46518,7 +47072,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46531,7 +47085,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46541,18 +47095,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46562,10 +47117,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46591,7 +47146,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46629,7 +47184,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46652,14 +47207,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46682,7 +47237,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46704,7 +47259,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46725,8 +47280,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46734,7 +47289,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46744,10 +47299,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46759,15 +47314,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46780,20 +47335,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46816,75 +47371,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46912,9 +47467,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46939,8 +47494,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46953,11 +47508,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46974,38 +47529,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47017,184 +47571,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47210,14 +47764,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47290,7 +47844,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47301,8 +47855,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47339,7 +47893,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47357,25 +47911,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47390,7 +47944,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47401,10 +47955,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47418,22 +47972,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47445,7 +47999,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47464,23 +48018,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47489,20 +48043,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47527,8 +48081,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47538,41 +48092,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47587,34 +48141,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47622,7 +48176,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47641,7 +48195,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47655,9 +48209,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47682,8 +48236,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47707,20 +48261,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47735,7 +48289,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47754,50 +48308,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63912,6 +64466,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "Nincs felhasználási korlátozás a Godot-ra" diff --git a/weblate/id.po b/weblate/id.po index c58f7c5177..e19739f30f 100644 --- a/weblate/id.po +++ b/weblate/id.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-31 12:11+0000\n" "Last-Translator: Evan Hyacinth \n" "Language-Team: Indonesian `_ markup " "language and then compiled into a static website/offline document using the " @@ -360,9 +366,10 @@ msgstr "" "semua pengguna baru." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "Disamping itu, bagian :ref:`sec-tutorials` dapat dibaca sesuai kebutuhan, " "dalam urutan yang bebas. Bagian ini terdapat banyak tutorial dan dokumentasi " @@ -380,9 +387,10 @@ msgstr "" "berbasis C++." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1840,7 +1848,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1860,22 +1868,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1883,7 +1889,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1892,18 +1898,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1911,7 +1917,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1922,13 +1928,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1936,21 +1942,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1960,18 +1966,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9455,8 +9461,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10141,11 +10147,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10390,8 +10396,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19181,8 +19187,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19920,7 +19926,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20470,306 +20476,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Membuat Kontent" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Membuat Kontent" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -37023,7 +36815,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37426,7 +37218,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37463,7 +37255,765 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Membuat Kontent" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Membuat Kontent" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Membuat Kontent" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Membuat Kontent" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43091,7 +43641,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43114,9 +43664,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43133,35 +43684,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43201,7 +43752,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43228,8 +43779,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43242,13 +43793,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43270,20 +43821,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43326,7 +43877,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43389,9 +43940,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43414,11 +43965,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43437,10 +43988,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43491,7 +44042,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43499,7 +44050,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43507,7 +44058,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43524,7 +44075,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43532,7 +44083,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43540,7 +44091,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43548,7 +44099,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43556,7 +44107,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43564,7 +44115,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43572,7 +44123,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43590,7 +44141,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43599,7 +44150,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43609,7 +44160,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43649,7 +44200,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43704,9 +44255,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43726,8 +44277,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43751,7 +44302,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43768,9 +44319,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44053,7 +44604,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44074,12 +44625,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44105,9 +44656,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44133,7 +44684,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44143,7 +44694,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44175,8 +44726,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44301,7 +44852,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44657,7 +45208,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44665,7 +45216,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44790,7 +45341,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45287,14 +45838,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45653,7 +46204,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45670,7 +46222,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45760,7 +46312,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45985,14 +46537,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46067,9 +46619,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46077,7 +46629,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46179,13 +46731,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46291,9 +46843,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46473,7 +47025,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46496,7 +47048,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46524,8 +47076,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46594,7 +47146,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46607,7 +47159,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46617,18 +47169,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46638,10 +47191,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46667,7 +47220,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46705,7 +47258,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46728,14 +47281,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46758,7 +47311,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46780,7 +47333,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46801,8 +47354,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46810,7 +47363,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46820,10 +47373,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46835,15 +47388,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46856,20 +47409,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46892,75 +47445,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46988,9 +47541,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -47015,8 +47568,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47029,11 +47582,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47050,38 +47603,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47093,184 +47645,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47286,14 +47838,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47366,7 +47918,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47377,8 +47929,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47415,7 +47967,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47433,25 +47985,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47466,7 +48018,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47477,10 +48029,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47494,22 +48046,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47521,7 +48073,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47540,23 +48092,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47565,20 +48117,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47603,8 +48155,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47614,41 +48166,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47663,34 +48215,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47698,7 +48250,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47717,7 +48269,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47731,9 +48283,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47758,8 +48310,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47783,20 +48335,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47811,7 +48363,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47830,50 +48382,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63990,3 +64542,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/it.po b/weblate/it.po index 481911f6c0..2f454181ca 100644 --- a/weblate/it.po +++ b/weblate/it.po @@ -28,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-08 08:58+0000\n" "Last-Translator: Alessandro Zoppi \n" "Language-Team: Italian `_ markup " "language and then compiled into a static website/offline document using the " @@ -380,9 +386,10 @@ msgstr "" "inizio per tutti i nuovi utenti." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "La sezione :ref:`sec-tutorials` d'altro canto può essere letta in caso di " "necessità ed in ogni ordine. Questa sezione contiene vari tutorial e " @@ -400,9 +407,10 @@ msgstr "" "l'editor." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2206,10 +2214,11 @@ msgid "Conclusion" msgstr "Conclusione" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "L'istanziazione puó essere utile se vuoi creare piú copie dello stesso " "oggetto. C'é anche la possibilitá di creare istanze dal codice usando " @@ -2233,14 +2242,10 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "L'abilitá di suddividere le scene e renderle piú facili da gestire." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Un'alternativa piú flessibile ai prefabs di Unity (e molto piú potente visto " -"che le istanze possono essere annidate)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2248,11 +2253,11 @@ msgstr "" "Un modo per organizzare e integrare logiche di gioco complesse o anche UI " "(in Godot anche gli elementi dell'UI sono nodi)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Linguaggio di design" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2264,7 +2269,7 @@ msgstr "" "quello che distingue Godot da tutti gli altri motori esistenti. Godot é " "stato disegnato fin dalle fondamenta attorno a questo concetto." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2278,11 +2283,11 @@ msgstr "" "immaginando gli elementi visibili nel tuo gioco, quelli che possono essere " "nominati non solo da un programmatore ma da ognuno." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "Per esempio, ecco come un semplice sparatutto puó essere immaginato:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2292,7 +2297,7 @@ msgstr "" "Scrivi le parti del gioco che puoi visualizzare, poi aggiungi frecce per " "rappresentare la proprietà di un componente da un altro." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2304,7 +2309,7 @@ msgstr "" "elencato nel diagramma. Si userà l'istanziazione (tramite codice o " "direttamente nell'editor) per i rapporti di proprietà." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -2323,7 +2328,7 @@ msgstr "" "una scena, l'utilizzo di un'istanziazione basata sulle scene significa che " "serve poco codice aggiuntivo." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2331,7 +2336,7 @@ msgstr "" "Diamo un'occhiata a un altro esempio, un po' più complesso, di un gioco di " "tipo open-world con molte risorse ed elementi annidati:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 #, fuzzy msgid "" "Take a look at the room element. Let's say we started there. We could make a " @@ -2344,7 +2349,7 @@ msgstr "" "altre scene). Più tardi, potremmo creare una stanza per una casa, collegando " "altre stanze che formino i suoi interni." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 #, fuzzy msgid "" "Then, we could make a citadel scene, which is made out of many instanced " @@ -2355,7 +2360,7 @@ msgstr "" "istanze di case. Ancora, potremmo iniziare a lavorare alla conformazione del " "mondo di gioco, aggiungendoci la cittadella." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 #, fuzzy msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " @@ -2366,7 +2371,7 @@ msgstr "" "aggiungere anche loro alla cittadella. Come risultato, saranno " "indirettamente aggiunte anche al complessivo mondo di gioco." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 #, fuzzy msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " @@ -2383,11 +2388,11 @@ msgstr "" "produttivo può coinvolgere artisti 2D o 3D, level designer, game designer, " "animatori, tutti che lavorano con l'interfaccia dell'editor." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "Sovraccarico di informazioni!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 #, fuzzy msgid "" "This has been a lot of high level information dropped on you all at once. " @@ -2399,7 +2404,7 @@ msgstr "" "consapevolezza delle modalità con cui le scene e l'istanziazione sono usati " "in progetti reali." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 #, fuzzy msgid "" "Everything discussed here will become second nature to you once you start " @@ -9994,8 +9999,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10683,11 +10688,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10932,8 +10937,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19740,8 +19745,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -20479,7 +20484,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -21029,306 +21034,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 -msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 -msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 -msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 -msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 -msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 -msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 -msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 -msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 -msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "Creating the polygons" -msgstr "Creare contenuti" +msgid "2D meshes" +msgstr "Segnali in C#" -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Creare contenuti" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -37589,7 +37381,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37992,7 +37784,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -38029,7 +37821,767 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Creare contenuti" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Creare contenuti" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Creare contenuti" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Creare un nuovo progetto" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Creare un nuovo progetto" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Non ci sono restrizioni di utilizzo per Godot" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43657,7 +44209,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43680,9 +44232,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43699,35 +44252,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43767,7 +44320,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43794,8 +44347,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43808,13 +44361,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43836,20 +44389,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43892,7 +44445,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43956,9 +44509,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43981,11 +44534,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -44004,10 +44557,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -44058,7 +44611,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -44066,7 +44619,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -44074,7 +44627,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -44091,7 +44644,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -44099,7 +44652,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -44107,7 +44660,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -44115,7 +44668,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -44123,7 +44676,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -44131,7 +44684,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -44139,7 +44692,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -44157,7 +44710,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -44166,7 +44719,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -44176,7 +44729,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -44216,7 +44769,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -44271,9 +44824,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -44293,8 +44846,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -44318,7 +44871,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -44335,9 +44888,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44620,7 +45173,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44641,12 +45194,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44672,9 +45225,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44700,7 +45253,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44710,7 +45263,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44742,8 +45295,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44870,7 +45423,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -45226,7 +45779,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -45234,7 +45787,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -45359,7 +45912,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45856,14 +46409,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -46222,7 +46775,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -46239,7 +46793,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -46329,7 +46883,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -46554,14 +47108,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46636,9 +47190,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46646,7 +47200,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46748,13 +47302,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46860,9 +47414,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -47042,7 +47596,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -47065,7 +47619,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -47093,8 +47647,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -47163,7 +47717,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -47176,7 +47730,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -47186,18 +47740,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -47207,10 +47762,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -47236,7 +47791,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -47274,7 +47829,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -47297,14 +47852,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -47327,7 +47882,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -47349,7 +47904,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -47370,8 +47925,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -47379,7 +47934,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -47389,10 +47944,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -47404,15 +47959,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -47425,20 +47980,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -47461,75 +48016,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -47557,9 +48112,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -47584,8 +48139,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47598,11 +48153,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47619,38 +48174,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47662,184 +48216,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47855,14 +48409,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47935,7 +48489,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47946,8 +48500,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47984,7 +48538,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -48002,25 +48556,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -48035,7 +48589,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -48046,10 +48600,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -48063,22 +48617,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -48090,7 +48644,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -48109,23 +48663,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -48134,20 +48688,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -48172,8 +48726,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -48183,41 +48737,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -48232,34 +48786,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -48267,7 +48821,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -48286,7 +48840,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -48300,9 +48854,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -48327,8 +48881,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -48352,20 +48906,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -48380,7 +48934,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -48399,50 +48953,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -64569,6 +65123,19 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Un'alternativa piú flessibile ai prefabs di Unity (e molto piú potente " +#~ "visto che le istanze possono essere annidate)." + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "Non ci sono restrizioni di utilizzo per Godot" diff --git a/weblate/ja.po b/weblate/ja.po index b643f87158..c45a637827 100644 --- a/weblate/ja.po +++ b/weblate/ja.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-31 12:11+0000\n" "Last-Translator: nitenook \n" "Language-Team: Japanese `_ markup " "language and then compiled into a static website/offline document using the " @@ -350,9 +356,10 @@ msgstr "" "り、このチュートリアルは、すべての新規ユーザーのための入り口です。" #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "一方、:ref:`sec-tutorials` セクションは、好きな順番で必要に応じて読むことがで" "きます。これには、多くの機能固有のチュートリアルとドキュメントが含まれていま" @@ -372,7 +379,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1734,7 +1741,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1754,22 +1761,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1777,7 +1782,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1786,18 +1791,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1805,7 +1810,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1816,13 +1821,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1830,21 +1835,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1854,18 +1859,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9356,8 +9361,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10043,11 +10048,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10292,8 +10297,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19094,8 +19099,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19833,7 +19838,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20383,306 +20388,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "コンテンツの作成" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "コンテンツの作成" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36942,7 +36733,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37345,7 +37136,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37382,7 +37173,767 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "コンテンツの作成" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "コンテンツの作成" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "アニメーション" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "アニメーション" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "コンテンツの作成" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "アニメーション" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43010,7 +43561,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43033,9 +43584,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43052,35 +43604,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43120,7 +43672,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43147,8 +43699,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43161,13 +43713,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43189,20 +43741,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43245,7 +43797,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43308,9 +43860,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43333,11 +43885,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43356,10 +43908,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43410,7 +43962,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43418,7 +43970,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43426,7 +43978,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43443,7 +43995,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43451,7 +44003,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43459,7 +44011,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43467,7 +44019,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43475,7 +44027,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43483,7 +44035,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43491,7 +44043,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43509,7 +44061,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43518,7 +44070,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43528,7 +44080,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43568,7 +44120,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43623,9 +44175,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43645,8 +44197,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43670,7 +44222,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43687,9 +44239,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43972,7 +44524,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43993,12 +44545,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44024,9 +44576,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44052,7 +44604,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44062,7 +44614,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44094,8 +44646,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44221,7 +44773,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44577,7 +45129,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44585,7 +45137,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44710,7 +45262,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45207,14 +45759,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45573,7 +46125,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45590,7 +46143,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45680,7 +46233,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45906,14 +46459,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45988,9 +46541,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45998,7 +46551,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46100,13 +46653,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46213,9 +46766,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46395,7 +46948,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46418,7 +46971,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46446,8 +46999,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46516,7 +47069,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46529,7 +47082,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46539,18 +47092,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46560,10 +47114,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46589,7 +47143,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46627,7 +47181,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46650,14 +47204,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46680,7 +47234,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46702,7 +47256,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46723,8 +47277,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46732,7 +47286,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46742,10 +47296,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46757,15 +47311,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46778,20 +47332,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46814,75 +47368,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "変数" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46910,9 +47464,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46937,8 +47491,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46951,11 +47505,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46972,38 +47526,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47015,185 +47568,185 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "色" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47209,14 +47762,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47289,7 +47842,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47300,8 +47853,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47338,7 +47891,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47356,25 +47909,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47389,7 +47942,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47400,10 +47953,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47417,22 +47970,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47444,7 +47997,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47463,23 +48016,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47488,20 +48041,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47526,8 +48079,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47537,41 +48090,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47586,34 +48139,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47621,7 +48174,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47640,7 +48193,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47654,9 +48207,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47681,8 +48234,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47706,20 +48259,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47734,7 +48287,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47753,50 +48306,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63911,6 +64464,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "Supported Animation" #~ msgstr "アニメーション" diff --git a/weblate/jbo.po b/weblate/jbo.po index f0949491d0..73018f8855 100644 --- a/weblate/jbo.po +++ b/weblate/jbo.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-11-20 10:45+0000\n" "Last-Translator: Kyle Serdutz \n" "Language-Team: Lojban `_ markup " "language and then compiled into a static website/offline document using the " @@ -287,8 +289,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -301,7 +303,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1636,7 +1638,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1656,22 +1658,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1679,7 +1679,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1688,18 +1688,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1707,7 +1707,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1718,13 +1718,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1732,21 +1732,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1756,18 +1756,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9250,8 +9250,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9935,11 +9935,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10184,8 +10184,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -18974,8 +18974,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19713,7 +19713,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20263,304 +20263,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36813,7 +36601,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37216,7 +37004,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37253,7 +37041,761 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +msgid "Creating an AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +msgid "Creating a tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42881,7 +43423,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42904,9 +43446,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42923,35 +43466,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -42991,7 +43534,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43018,8 +43561,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43032,13 +43575,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43060,20 +43603,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43116,7 +43659,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43179,9 +43722,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43204,11 +43747,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43227,10 +43770,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43281,7 +43824,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43289,7 +43832,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43297,7 +43840,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43314,7 +43857,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43322,7 +43865,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43330,7 +43873,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43338,7 +43881,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43346,7 +43889,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43354,7 +43897,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43362,7 +43905,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43380,7 +43923,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43389,7 +43932,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43399,7 +43942,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43439,7 +43982,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43494,9 +44037,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43516,8 +44059,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43541,7 +44084,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43558,9 +44101,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43843,7 +44386,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43864,12 +44407,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43895,9 +44438,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43923,7 +44466,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43933,7 +44476,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -43965,8 +44508,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44091,7 +44634,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44447,7 +44990,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44455,7 +44998,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44580,7 +45123,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45077,14 +45620,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45443,7 +45986,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45460,7 +46004,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45550,7 +46094,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45775,14 +46319,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45857,9 +46401,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45867,7 +46411,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -45969,13 +46513,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46081,9 +46625,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46263,7 +46807,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46286,7 +46830,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46314,8 +46858,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46384,7 +46928,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46397,7 +46941,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46407,18 +46951,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46428,10 +46973,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46457,7 +47002,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46495,7 +47040,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46518,14 +47063,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46548,7 +47093,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46570,7 +47115,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46591,8 +47136,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46600,7 +47145,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46610,10 +47155,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46625,15 +47170,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46646,20 +47191,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46682,75 +47227,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46778,9 +47323,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46805,8 +47350,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46819,11 +47364,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46840,38 +47385,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46883,184 +47427,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47076,14 +47620,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47156,7 +47700,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47167,8 +47711,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47205,7 +47749,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47223,25 +47767,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47256,7 +47800,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47267,10 +47811,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47284,22 +47828,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47311,7 +47855,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47330,23 +47874,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47355,20 +47899,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47393,8 +47937,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47404,41 +47948,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47453,34 +47997,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47488,7 +48032,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47507,7 +48051,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47521,9 +48065,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47548,8 +48092,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47573,20 +48117,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47601,7 +48145,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47620,50 +48164,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63767,3 +64311,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/ko.po b/weblate/ko.po index 6e15cbb76f..9491f7c68d 100644 --- a/weblate/ko.po +++ b/weblate/ko.po @@ -30,7 +30,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-06 18:10+0000\n" "Last-Translator: Octopus ET \n" "Language-Team: Korean `_ markup " "language and then compiled into a static website/offline document using the " @@ -361,9 +367,10 @@ msgstr "" "줍니다." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "반면 :ref:`sec-tutorials` 섹션은 순서에 상관 없이 필요에 따라 읽을 수 있습니" "다. 이 섹션에는 특정 기능 관련 튜토리얼과 문서가 많이 있습니다." @@ -378,9 +385,10 @@ msgstr "" "진 컴파일, C++ 모듈 혹은 에디터 플러그인 개발에 대한 정보를 담고 있습니다." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2071,10 +2079,11 @@ msgid "Conclusion" msgstr "결론" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "인스턴스는 많은 양의 오브젝트 복사본을 만들 때 유용합니다. GDScript를 사용해" "서도 인스턴스를 만들 수 있습니다, :ref:`doc_scripting_continued`\\ 를 참고하" @@ -2099,14 +2108,10 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "관리하기 편하게 하기 위해 씬들을 여러 하위 객체로 나눌 수 있는 것." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"유니티의 프리펩보다 더 유연한 대안 (그리고 인스턴스가 중첩될 수 있기에 훨씬 " -"더 강력함)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2114,11 +2119,11 @@ msgstr "" "복잡한 게임 플로우나 심지어는 UI를 구조화하고 내장하는 방법 (Godot에서는 UI" "의 원소들마저도 노드입니다)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "디자인 언어" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2129,7 +2134,7 @@ msgstr "" "니다. 이것이 사실상 Godot와 다른 알려진 엔진들을 구분하는 부분입니다. Godot" "는 애초에 바닥부터 이러한 컨셉으로 디자인되었습니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2140,12 +2145,12 @@ msgstr "" "Godot로 게임을 만들 때에는 통상적으로 쓰이는 디자인 패턴들 (MVC 혹은 개체-관" "계 다이어그램 등) 을 버리고 씬을 좀 더 자연스럽게 바라보기를 권장합니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" "예를 들자면 우리는 간단한 슈팅 게임을 다음과 같이 상상해볼 수 있습니다:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2155,7 +2160,7 @@ msgstr "" "서 시각화할 수 있는 부분들을 쭉 적어보고, 각 컴포넌트들의 소유권을 나타내주" "기 위한 화살표를 추가해줍니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2166,7 +2171,7 @@ msgstr "" "씬을 만들기를 권장합니다. 여기서 (코드를 사용해서, 아니면 에디터에서 직접) 인" "스턴스를 사용할 것입니다, 소유 관계를 위해서 말입니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 #, fuzzy msgid "" "A lot of time spent in programming games (or software in general) is on " @@ -2184,7 +2189,7 @@ msgstr "" "포넌트가 그대로 씬으로 되기 때문에 씬 인스턴스를 사용하게 되면 구조 디자인에 " "따른 구조적인 코드가 딱히 필요하지 않습니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2192,7 +2197,7 @@ msgstr "" "좀 더 복잡한 예시를 들어보겠습니다. 한 번 에셋들도 많고, 중첩된 원소들이 많" "은 오픈월드 게임을 살펴보죠:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2203,7 +2208,7 @@ msgstr "" "치를 달리하여 서로 다른 두 가지의 방 씬을 만들 수 있습니다. 나중에는, 방들을 " "연결해서 집 씬을 만들 수도 있습니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2212,7 +2217,7 @@ msgstr "" "그런 뒤, 많은 인스턴스된 집들로 이루어진 성 씬을 만들 수 있습니다. 그리고, 월" "드 맵 지형에 성을 추가하는 작업을 할 수 있습니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2221,7 +2226,7 @@ msgstr "" "나중에는, 경호원이나 다른 NPC들의 씬을 만들고 성에 추가 할 수 있습니다. 그 결" "과, 그것들은 게임 세상에 간접적으로 추가됩니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2235,11 +2240,11 @@ msgstr "" "자인 되었습니다. 전형적인 개발 팀은 2D나 3D 아티스트, 레벨 디자이너, 게임 디" "자이너, 애니메이터를 포함하지만, 모두가 이 에디터 내에서 작업 할 수 있습니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "정보가 너무 많아요!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2248,7 +2253,7 @@ msgstr "" "많은 정보들을 당신이 한번에 이해하긴 어려울 겁니다. 하지만 이 튜토리얼의 핵심" "은 씬이 프로젝트에서 씬과 인스턴스가 어떻게 이용되는지를 알면 되는 것입니다." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -12115,8 +12120,8 @@ msgstr "키워드" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -12827,11 +12832,11 @@ msgstr "정수 데이터 타입은 오직 정수만 가질 수 있습니다, ( #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "float" @@ -13129,8 +13134,8 @@ msgstr "데이터" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "변수(Variable)" @@ -22622,8 +22627,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -23361,7 +23366,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -23911,308 +23916,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "스켈레톤" +msgid "2D meshes" +msgstr "커스텀 시그널" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "애니메이션 만들기" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "스켈레톤(Skeleton) 정리하기" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "행성 색칠하기" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -41212,7 +41002,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -41615,7 +41405,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -41652,7 +41442,773 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "스켈레톤" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "애니메이션 만들기" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "스켈레톤(Skeleton) 정리하기" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "행성 색칠하기" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "애니메이션" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "애니메이션 만들기" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "프로젝트 생성하기" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +#, fuzzy +msgid "Blend tree" +msgstr "씬 트리" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "타이머(Timer) 예제" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "변환" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "전환(transition) 유형" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "옵션들 가져오기" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -47281,7 +47837,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -47304,9 +47860,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -47323,35 +47880,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -47391,7 +47948,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -47418,8 +47975,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -47432,13 +47989,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -47461,20 +48018,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -47518,7 +48075,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -47584,9 +48141,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -47609,11 +48166,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -47632,10 +48189,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -47686,7 +48243,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -47694,7 +48251,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -47702,7 +48259,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -47719,7 +48276,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -47727,7 +48284,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -47735,7 +48292,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -47743,7 +48300,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -47751,7 +48308,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -47759,7 +48316,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -47767,7 +48324,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -47785,7 +48342,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -47794,7 +48351,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -47804,7 +48361,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -47844,7 +48401,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -47899,9 +48456,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -47921,8 +48478,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -47946,7 +48503,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -47963,9 +48520,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -48248,7 +48805,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -48269,12 +48826,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -48300,9 +48857,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -48328,7 +48885,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -48338,7 +48895,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -48370,8 +48927,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -48500,7 +49057,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -48857,7 +49414,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -48865,7 +49422,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -48990,7 +49547,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -49488,14 +50045,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -49859,7 +50416,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -49876,7 +50434,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -49966,7 +50524,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -50192,14 +50750,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -50274,9 +50832,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -50284,7 +50842,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -50386,13 +50944,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -50499,9 +51057,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -50681,7 +51239,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -50704,7 +51262,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -50732,8 +51290,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -50803,7 +51361,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -50816,7 +51374,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -50826,18 +51384,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -50847,10 +51406,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -50876,7 +51435,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -50914,7 +51473,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -50937,14 +51496,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -50967,7 +51526,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -50989,7 +51548,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -51010,8 +51569,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -51019,7 +51578,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -51030,10 +51589,10 @@ msgstr "``x.attribute``" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -51045,15 +51604,15 @@ msgstr "gl_Position" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -51066,20 +51625,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -51102,75 +51661,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "변수" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -51198,9 +51757,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -51225,8 +51784,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -51239,11 +51798,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -51260,38 +51819,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "타입(Types)" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "메인 이미지(mainImage)" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -51303,184 +51861,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "fragColor" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -51496,14 +52054,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -51576,7 +52134,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -51587,8 +52145,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -51625,7 +52183,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -51643,25 +52201,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -51676,7 +52234,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -51687,10 +52245,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -51704,22 +52262,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -51731,7 +52289,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -51750,23 +52308,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -51775,20 +52333,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -51813,8 +52371,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -51824,41 +52382,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -51873,34 +52431,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -51908,7 +52466,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -51927,7 +52485,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -51941,9 +52499,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -51968,8 +52526,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -51993,20 +52551,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -52021,7 +52579,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -52040,50 +52598,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -68210,6 +68768,19 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "유니티의 프리펩보다 더 유연한 대안 (그리고 인스턴스가 중첩될 수 있기에 훨" +#~ "씬 더 강력함)." + #~ msgid "" #~ "GameObject -> Node Add a component -> Inheriting Prefab -> Externalized " #~ "branch" diff --git a/weblate/lt.po b/weblate/lt.po index 1dd5ce7254..c79e301527 100644 --- a/weblate/lt.po +++ b/weblate/lt.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-06-12 09:40+0000\n" "Last-Translator: Kornelijus \n" "Language-Team: Lithuanian `_ markup " "language and then compiled into a static website/offline document using the " @@ -293,8 +297,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -307,7 +311,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1642,7 +1646,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1662,22 +1666,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1685,7 +1687,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1694,18 +1696,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1713,7 +1715,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1724,13 +1726,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1738,21 +1740,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1762,18 +1764,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9257,8 +9259,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9943,11 +9945,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10192,8 +10194,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -18983,8 +18985,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19722,7 +19724,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20272,304 +20274,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36823,7 +36613,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37226,7 +37016,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37263,7 +37053,761 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +msgid "Creating an AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +msgid "Creating a tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42891,7 +43435,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42914,9 +43458,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42933,35 +43478,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43001,7 +43546,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43028,8 +43573,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43042,13 +43587,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43070,20 +43615,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43126,7 +43671,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43189,9 +43734,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43214,11 +43759,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43237,10 +43782,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43291,7 +43836,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43299,7 +43844,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43307,7 +43852,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43324,7 +43869,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43332,7 +43877,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43340,7 +43885,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43348,7 +43893,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43356,7 +43901,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43364,7 +43909,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43372,7 +43917,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43390,7 +43935,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43399,7 +43944,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43409,7 +43954,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43449,7 +43994,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43504,9 +44049,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43526,8 +44071,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43551,7 +44096,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43568,9 +44113,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43853,7 +44398,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43874,12 +44419,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43905,9 +44450,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43933,7 +44478,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43943,7 +44488,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -43975,8 +44520,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44101,7 +44646,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44457,7 +45002,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44465,7 +45010,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44590,7 +45135,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45087,14 +45632,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45453,7 +45998,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45470,7 +46016,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45560,7 +46106,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45785,14 +46331,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45867,9 +46413,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45877,7 +46423,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -45979,13 +46525,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46091,9 +46637,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46273,7 +46819,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46296,7 +46842,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46324,8 +46870,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46394,7 +46940,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46407,7 +46953,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46417,18 +46963,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46438,10 +46985,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46467,7 +47014,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46505,7 +47052,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46528,14 +47075,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46558,7 +47105,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46580,7 +47127,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46601,8 +47148,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46610,7 +47157,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46620,10 +47167,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46635,15 +47182,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46656,20 +47203,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46692,75 +47239,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46788,9 +47335,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46815,8 +47362,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46829,11 +47376,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46850,38 +47397,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46893,184 +47439,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47086,14 +47632,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47166,7 +47712,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47177,8 +47723,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47215,7 +47761,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47233,25 +47779,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47266,7 +47812,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47277,10 +47823,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47294,22 +47840,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47321,7 +47867,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47340,23 +47886,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47365,20 +47911,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47403,8 +47949,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47414,41 +47960,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47463,34 +48009,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47498,7 +48044,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47517,7 +48063,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47531,9 +48077,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47558,8 +48104,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47583,20 +48129,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47611,7 +48157,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47630,50 +48176,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63777,3 +64323,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/ms.po b/weblate/ms.po index b9f909bc92..b7bd98c2e9 100644 --- a/weblate/ms.po +++ b/weblate/ms.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-07-29 04:40+0000\n" "Last-Translator: Nafis Ibrahim \n" "Language-Team: Malay `_ markup " "language and then compiled into a static website/offline document using the " @@ -319,8 +322,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -333,7 +336,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1668,7 +1671,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1688,22 +1691,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1711,7 +1712,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1720,18 +1721,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1739,7 +1740,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1750,13 +1751,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1764,21 +1765,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1788,18 +1789,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9291,8 +9292,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9977,11 +9978,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10226,8 +10227,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19024,8 +19025,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19763,7 +19764,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20313,306 +20314,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Mencipta Kandungan" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Mencipta Kandungan" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36868,7 +36655,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37271,7 +37058,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37308,7 +37095,766 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Mencipta Kandungan" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Mencipta Kandungan" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Mencipta Kandungan" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Mencipta Kandungan" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Mencipta Kandungan" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42936,7 +43482,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42959,9 +43505,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42978,35 +43525,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43046,7 +43593,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43073,8 +43620,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43087,13 +43634,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43115,20 +43662,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43171,7 +43718,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43234,9 +43781,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43259,11 +43806,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43282,10 +43829,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43336,7 +43883,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43344,7 +43891,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43352,7 +43899,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43369,7 +43916,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43377,7 +43924,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43385,7 +43932,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43393,7 +43940,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43401,7 +43948,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43409,7 +43956,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43417,7 +43964,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43435,7 +43982,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43444,7 +43991,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43454,7 +44001,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43494,7 +44041,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43549,9 +44096,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43571,8 +44118,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43596,7 +44143,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43613,9 +44160,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43898,7 +44445,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43919,12 +44466,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43950,9 +44497,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43978,7 +44525,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43988,7 +44535,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44020,8 +44567,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44146,7 +44693,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44502,7 +45049,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44510,7 +45057,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44635,7 +45182,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45132,14 +45679,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45498,7 +46045,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45515,7 +46063,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45605,7 +46153,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45830,14 +46378,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45912,9 +46460,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45922,7 +46470,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46024,13 +46572,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46136,9 +46684,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46318,7 +46866,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46341,7 +46889,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46369,8 +46917,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46439,7 +46987,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46452,7 +47000,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46462,18 +47010,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46483,10 +47032,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46512,7 +47061,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46550,7 +47099,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46573,14 +47122,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46603,7 +47152,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46625,7 +47174,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46646,8 +47195,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46655,7 +47204,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46665,10 +47214,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46680,15 +47229,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46701,20 +47250,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46737,75 +47286,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46833,9 +47382,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46860,8 +47409,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46874,11 +47423,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46895,38 +47444,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46938,184 +47486,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47131,14 +47679,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47211,7 +47759,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47222,8 +47770,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47260,7 +47808,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47278,25 +47826,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47311,7 +47859,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47322,10 +47870,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47339,22 +47887,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47366,7 +47914,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47385,23 +47933,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47410,20 +47958,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47448,8 +47996,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47459,41 +48007,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47508,34 +48056,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47543,7 +48091,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47562,7 +48110,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47576,9 +48124,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47603,8 +48151,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47628,20 +48176,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47656,7 +48204,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47675,50 +48223,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63827,5 +64375,11 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #~ msgid "Why is FBX not supported for import?" #~ msgstr "Kenapa tiada sokongan FBX untuk import?" diff --git a/weblate/nb.po b/weblate/nb.po index 31601145e9..c6f4762d5f 100644 --- a/weblate/nb.po +++ b/weblate/nb.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-06-22 19:42+0000\n" "Last-Translator: Frank T. Rambol \n" "Language-Team: Norwegian Bokmål `_ markup " "language and then compiled into a static website/offline document using the " @@ -284,8 +286,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -298,7 +300,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1633,7 +1635,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1653,22 +1655,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1676,7 +1676,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1685,18 +1685,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1704,7 +1704,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1715,13 +1715,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1729,21 +1729,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1753,18 +1753,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9248,8 +9248,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9934,11 +9934,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10183,8 +10183,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -18974,8 +18974,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19713,7 +19713,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20263,304 +20263,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36814,7 +36602,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37217,7 +37005,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37254,7 +37042,761 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +msgid "Creating an AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +msgid "Creating a tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42882,7 +43424,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42905,9 +43447,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42924,35 +43467,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -42992,7 +43535,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43019,8 +43562,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43033,13 +43576,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43061,20 +43604,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43117,7 +43660,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43180,9 +43723,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43205,11 +43748,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43228,10 +43771,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43282,7 +43825,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43290,7 +43833,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43298,7 +43841,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43315,7 +43858,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43323,7 +43866,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43331,7 +43874,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43339,7 +43882,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43347,7 +43890,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43355,7 +43898,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43363,7 +43906,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43381,7 +43924,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43390,7 +43933,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43400,7 +43943,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43440,7 +43983,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43495,9 +44038,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43517,8 +44060,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43542,7 +44085,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43559,9 +44102,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43844,7 +44387,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43865,12 +44408,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43896,9 +44439,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43924,7 +44467,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43934,7 +44477,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -43966,8 +44509,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44092,7 +44635,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44448,7 +44991,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44456,7 +44999,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44581,7 +45124,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45078,14 +45621,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45444,7 +45987,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45461,7 +46005,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45551,7 +46095,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45776,14 +46320,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45858,9 +46402,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45868,7 +46412,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -45970,13 +46514,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46082,9 +46626,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46264,7 +46808,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46287,7 +46831,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46315,8 +46859,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46385,7 +46929,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46398,7 +46942,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46408,18 +46952,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46429,10 +46974,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46458,7 +47003,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46496,7 +47041,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46519,14 +47064,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46549,7 +47094,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46571,7 +47116,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46592,8 +47137,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46601,7 +47146,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46611,10 +47156,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46626,15 +47171,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46647,20 +47192,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46683,75 +47228,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46779,9 +47324,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46806,8 +47351,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46820,11 +47365,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46841,38 +47386,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46884,184 +47428,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47077,14 +47621,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47157,7 +47701,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47168,8 +47712,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47206,7 +47750,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47224,25 +47768,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47257,7 +47801,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47268,10 +47812,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47285,22 +47829,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47312,7 +47856,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47331,23 +47875,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47356,20 +47900,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47394,8 +47938,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47405,41 +47949,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47454,34 +47998,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47489,7 +48033,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47508,7 +48052,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47522,9 +48066,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47549,8 +48093,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47574,20 +48118,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47602,7 +48146,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47621,50 +48165,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63768,3 +64312,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/nl.po b/weblate/nl.po index 907f426b15..44bb5c9453 100644 --- a/weblate/nl.po +++ b/weblate/nl.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-31 12:10+0000\n" "Last-Translator: Bas van Schoubroeck \n" "Language-Team: Dutch `_ markup " "language and then compiled into a static website/offline document using the " @@ -370,9 +376,10 @@ msgstr "" "nieuwe gebruikers." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "De :ref:`sec-tutorials` sectie, anderzijds, kan wanneer nodig gelezen " "worden, in willekeurige volgorde. Het gaat over vele feature-specifieke " @@ -392,7 +399,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1790,7 +1797,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1810,22 +1817,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1833,7 +1838,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1842,18 +1847,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1861,7 +1866,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1872,13 +1877,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1886,21 +1891,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1910,18 +1915,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9405,8 +9410,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10091,11 +10096,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10340,8 +10345,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19131,8 +19136,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19870,7 +19875,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20420,304 +20425,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36971,7 +36764,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37374,7 +37167,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37411,7 +37204,762 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +msgid "Creating an AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Aan de slag" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43039,7 +43587,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43062,9 +43610,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43081,35 +43630,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43149,7 +43698,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43176,8 +43725,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43190,13 +43739,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43218,20 +43767,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43274,7 +43823,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43337,9 +43886,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43362,11 +43911,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43385,10 +43934,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43439,7 +43988,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43447,7 +43996,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43455,7 +44004,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43472,7 +44021,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43480,7 +44029,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43488,7 +44037,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43496,7 +44045,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43504,7 +44053,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43512,7 +44061,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43520,7 +44069,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43538,7 +44087,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43547,7 +44096,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43557,7 +44106,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43597,7 +44146,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43652,9 +44201,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43674,8 +44223,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43699,7 +44248,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43716,9 +44265,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44001,7 +44550,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44022,12 +44571,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44053,9 +44602,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44081,7 +44630,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44091,7 +44640,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44123,8 +44672,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44249,7 +44798,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44605,7 +45154,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44613,7 +45162,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44738,7 +45287,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45235,14 +45784,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45601,7 +46150,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45618,7 +46168,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45708,7 +46258,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45933,14 +46483,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46015,9 +46565,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46025,7 +46575,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46127,13 +46677,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46239,9 +46789,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46421,7 +46971,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46444,7 +46994,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46472,8 +47022,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46542,7 +47092,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46555,7 +47105,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46565,18 +47115,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46586,10 +47137,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46615,7 +47166,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46653,7 +47204,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46676,14 +47227,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46706,7 +47257,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46728,7 +47279,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46749,8 +47300,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46758,7 +47309,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46768,10 +47319,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46783,15 +47334,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46804,20 +47355,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46840,75 +47391,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46936,9 +47487,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46963,8 +47514,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46977,11 +47528,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46998,38 +47549,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47041,184 +47591,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47234,14 +47784,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47314,7 +47864,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47325,8 +47875,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47363,7 +47913,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47381,25 +47931,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47414,7 +47964,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47425,10 +47975,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47442,22 +47992,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47469,7 +48019,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47488,23 +48038,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47513,20 +48063,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47551,8 +48101,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47562,41 +48112,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47611,34 +48161,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47646,7 +48196,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47665,7 +48215,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47679,9 +48229,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47706,8 +48256,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47731,20 +48281,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47759,7 +48309,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47778,50 +48328,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63927,6 +64477,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #~ msgid "" #~ "This means it is free as in \"free speech\" as well as in \"free beer\"." #~ msgstr "" diff --git a/weblate/pl.po b/weblate/pl.po index 52476c50e3..406e78d30e 100644 --- a/weblate/pl.po +++ b/weblate/pl.po @@ -28,7 +28,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-09 09:13+0000\n" "Last-Translator: Szymon Nowakowski \n" "Language-Team: Polish `_ markup " "language and then compiled into a static website/offline document using the " @@ -375,9 +381,10 @@ msgstr "" "nowych użytkowników." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "Z kolei sekcję :ref:`sec-tutoriale`z innej strony można czytać, w zależności " "od potrzeb. Zawiera ona wiele samouczków i dokumentacji dotyczących " @@ -394,9 +401,10 @@ msgstr "" "silnika, tworznenia modułów C++ lub wtyczek edytora." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2151,7 +2159,7 @@ msgstr "Wniosek" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "Instancjonowanie może być przydatne, gdy chcesz utworzyć wiele kopii tego " "samego obiektu." @@ -2175,25 +2183,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "Możliwość podziału scen i ułatwienia zarządzania nimi." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -#, fuzzy -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Bardziej elastyczna alternatywa dla obiektów będących szablonami (i o wiele " -"mocniejsza, biorąc pod uwagę możliwość zagnieżdżenia się instancji)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2205,7 +2208,7 @@ msgstr "" "wszystkich innych silników. Godot został zaprojektowany od podstaw wokół " "tego konceptu." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2219,11 +2222,11 @@ msgstr "" "od wyobrażenia sobie elementów widocznych w grze, które mogą być nazwane nie " "tylko przez programistę, ale przez każdego." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "Na przykład, oto jak można sobie wyobrazić prostą grę strzelecką:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2233,7 +2236,7 @@ msgstr "" "gry, które możesz wizualizować, a następnie dodaj strzałki, aby " "reprezentować własność jednego komponentu przez drugi." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2245,7 +2248,7 @@ msgstr "" "instancjonowania (za pomocą kodu lub bezpośrednio w edytorze) dla relacji " "własnościowych." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 #, fuzzy msgid "" "A lot of time spent in programming games (or software in general) is on " @@ -2264,7 +2267,7 @@ msgstr "" "scenę, zastosowanie instancji opartej na projekcie oznacza, że nie jest " "potrzebny żaden inny kod architektoniczny." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2272,7 +2275,7 @@ msgstr "" "Przyjrzyjmy się jeszcze jednemu, nieco bardziej złożonemu przykładowi gry " "typu open-world z dużą ilością zasobów i elementów zagnieżdżonych:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2284,7 +2287,7 @@ msgstr "" "w nich. Potem mogliśmy stworzyć scenę dom, łączącą pokoje i tworzącą jej " "wnętrze." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2294,7 +2297,7 @@ msgstr "" "domów. Wtedy moglibyśmy zacząć pracę na mapie świata, dodając do niej " "cytadelę." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2304,7 +2307,7 @@ msgstr "" "dodawać je do cytadeli. W rezultacie zostałyby one pośrednio dodane do " "całego świata gier." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2320,11 +2323,11 @@ msgstr "" "lub 3D, projektantów poziomów, projektantów gier i animatorów, którzy " "współpracują z interfejsem edytora." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "Przeciążenie informacjami!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2334,7 +2337,7 @@ msgstr "" "raz. Ważną częścią tego samouczka było jednak uświadomienie sobie, jak sceny " "i instancje są wykorzystywane w rzeczywistych projektach." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -11399,8 +11402,8 @@ msgstr "Słowo kluczowe" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -12115,11 +12118,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "float" @@ -12403,8 +12406,8 @@ msgstr "Dane" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "Zmienne" @@ -22248,8 +22251,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -23081,7 +23084,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "Konfiguracja" @@ -23643,309 +23646,94 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Szkielety" +msgid "2D meshes" +msgstr "Siatki" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 -msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 -msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 #, fuzzy -msgid "Creating the polygons" -msgstr "Tworzenie wtyczki" +msgid "Converting Sprites to 2D meshes" +msgstr "Przeliczanie radianów na stopnie" -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Ustawianie sceny" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Sprawdzanie wtyczki" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -#, fuzzy -msgid "Internal vertices" -msgstr "Zewnętrzne pliki" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -41021,8 +40809,9 @@ msgid "And much more!" msgstr "I wiele więcej!" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" -msgstr "" +#, fuzzy +msgid "Making of GBot" +msgstr "Tworzenie zmian" #: ../../docs/tutorials/animation/cutout_animation.rst:57 msgid "" @@ -41424,7 +41213,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -41461,7 +41250,776 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Szkielety" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Tworzenie wtyczki" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Ustawianie sceny" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Sprawdzanie wtyczki" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +#, fuzzy +msgid "Internal vertices" +msgstr "Zewnętrzne pliki" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animacje" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Tworzenie animacji" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Tworzenie motywu" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +#, fuzzy +msgid "OneShot" +msgstr "One Shot" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Scale" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Translacja" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +#, fuzzy +msgid "StateMachine" +msgstr "Szukanie" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Typ połączenia" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Rotation" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +#, fuzzy +msgid "Controlling from code" +msgstr "Pisanie kodu silnika" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -47217,7 +47775,7 @@ msgstr "Środowisko i post-processing" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -47240,9 +47798,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -47260,35 +47819,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -47329,7 +47888,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -47357,8 +47916,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -47371,13 +47930,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -47401,20 +47960,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -47459,7 +48018,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -47525,9 +48084,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -47551,11 +48110,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -47575,10 +48134,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -47632,7 +48191,7 @@ msgid "**bvec2**" msgstr "**bvec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -47640,7 +48199,7 @@ msgid "**bvec3**" msgstr "**bvec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -47648,7 +48207,7 @@ msgid "**bvec4**" msgstr "*bvec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -47665,7 +48224,7 @@ msgid "**ivec2**" msgstr "**ivec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -47673,7 +48232,7 @@ msgid "**ivec3**" msgstr "**ivec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -47681,7 +48240,7 @@ msgid "**ivec4**" msgstr "**ivec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -47689,7 +48248,7 @@ msgid "**uint**" msgstr "**uint**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -47697,7 +48256,7 @@ msgid "**uvec2**" msgstr "**uvec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -47705,7 +48264,7 @@ msgid "**uvec3**" msgstr "**uvec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -47713,7 +48272,7 @@ msgid "**uvec4**" msgstr "**uvec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -47731,7 +48290,7 @@ msgid "**vec2**" msgstr "**vec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -47740,7 +48299,7 @@ msgid "**vec3**" msgstr "**vec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -47750,7 +48309,7 @@ msgid "**vec4**" msgstr "**vec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -47790,7 +48349,7 @@ msgid "**sampler2D**" msgstr "**sampler2D**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -47845,9 +48404,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -47867,8 +48426,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -47892,7 +48451,7 @@ msgstr "Precyzja" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -47909,9 +48468,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -48195,7 +48754,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -48216,12 +48775,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -48247,9 +48806,9 @@ msgstr "Varying" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -48275,7 +48834,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -48285,7 +48844,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -48317,8 +48876,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -48450,7 +49009,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -48807,7 +49366,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -48815,7 +49374,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -48940,7 +49499,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -49440,14 +49999,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -49807,7 +50366,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -49824,7 +50384,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -49914,7 +50474,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -50142,14 +50702,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -50224,9 +50784,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -50234,7 +50794,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -50337,13 +50897,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -50450,9 +51010,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -50632,7 +51192,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -50655,7 +51215,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -50683,8 +51243,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -50757,10 +51317,13 @@ msgid "Download the source code" msgstr "Kod źródłowy" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 +#, fuzzy msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" +"Gotowy projekt dla tej części można pobrać tutaj: :download:" +"`Godot_FPS_Part_1.zip `" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:40 msgid "" @@ -50771,7 +51334,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -50781,18 +51344,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -50802,10 +51366,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -50831,7 +51395,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -50869,7 +51433,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -50892,14 +51456,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -50922,7 +51486,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -50949,7 +51513,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 #, fuzzy msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" ":ref:`Shading Language ` zawiera szczegółowe " @@ -50974,9 +51538,10 @@ msgid "Shader programs" msgstr "Programy" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 +#, fuzzy msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -50986,9 +51551,10 @@ msgstr "" "drugą." #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 +#, fuzzy msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" "Godot pozwala używać zmiennych ``uniform`` oraz własnych funkcji zarówno we " @@ -51002,10 +51568,10 @@ msgstr "Własności wierzchołków" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 #, fuzzy msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" "W GLSL można przesłać dowolną ilość informacji na każdy wierzchołek. W " @@ -51018,12 +51584,13 @@ msgid "gl_Position" msgstr "gl_Position" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 +#, fuzzy msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" "``gl_Position`` otrzymuje ostateczną pozycję wierzchołka w vertex shader. " "Określa go użytkownik w clip space. Zazwyczaj w GLSL przesyła się pozycję " @@ -51031,8 +51598,9 @@ msgstr "" "space należy wykonać samodzielnie." #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 +#, fuzzy msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -51051,9 +51619,10 @@ msgstr "" "z view space na clip space." #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 +#, fuzzy msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." @@ -51064,13 +51633,14 @@ msgstr "" "``out`` w vertex shader i jako ``in`` we fragment shader." #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "Main" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 +#, fuzzy msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -51095,14 +51665,15 @@ msgid "Macros" msgstr "Makra" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:79 +#, fuzzy msgid "" "In keeping with its similarity to C, GLSL lets you use macros. Commonly " "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" "Upodobniając się do C, GLSL pozwala na stosowanie makr. ``#define`` często " "używa się do tworzenia stałych lub małych funkcji. W języku shaderów Godota " @@ -51112,68 +51683,68 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Zmienne" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "vec4" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -51201,9 +51772,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "vec2" @@ -51228,8 +51799,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "Współrzędne" @@ -51242,11 +51813,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -51263,38 +51834,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "Typy" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "mainImage" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -51306,184 +51876,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "fragColor" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "iResolution" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "vec3" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "iChannelTime[4]" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "iChannelResolution[4]" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "iChanneli" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "Sampler2D" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "u_resolution" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -51499,14 +52069,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -51581,7 +52151,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -51592,8 +52162,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -51630,7 +52200,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -51648,25 +52218,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -51681,7 +52251,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -51692,10 +52262,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -51709,22 +52279,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -51736,7 +52306,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -51755,23 +52325,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -51780,20 +52350,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -51818,8 +52388,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -51829,41 +52399,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -51878,44 +52448,47 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 +#, fuzzy msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" +":ref:`Shading Language ` zawiera szczegółowe " +"informacje o języku shaderów Godota." #: ../../docs/tutorials/shading/advanced_postprocessing.rst:4 msgid "Advanced post-processing" @@ -51932,7 +52505,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -51946,9 +52519,9 @@ msgstr "Pełnoekranowy quad" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -51973,8 +52546,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -51998,20 +52571,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -52026,7 +52599,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -52045,50 +52618,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -68736,6 +69309,20 @@ msgstr "" "`Zeef Godot Engine: Prowadzony przez Andre Schmitza katalog zasobów `_" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#, fuzzy +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Bardziej elastyczna alternatywa dla obiektów będących szablonami (i o " +#~ "wiele mocniejsza, biorąc pod uwagę możliwość zagnieżdżenia się instancji)." + #~ msgid "Working with 3D skeletons" #~ msgstr "Praca ze szkieletem 3D" diff --git a/weblate/pt_BR.po b/weblate/pt_BR.po index 433ac4e891..ec414e9aaf 100644 --- a/weblate/pt_BR.po +++ b/weblate/pt_BR.po @@ -73,7 +73,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-08 08:58+0000\n" "Last-Translator: Henrique Combochi \n" "Language-Team: Portuguese (Brazil) `_ markup " "language and then compiled into a static website/offline document using the " @@ -419,9 +425,10 @@ msgstr "" "step_by_step>`, que deve ser o ponto de entrada para todos os novos usuários." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "A seção :ref:`sec-tutorials`, por outro lado, pode ser lida conforme " "necessário, em qualquer ordem. Ela contém muitos tutoriais e documentações " @@ -438,9 +445,10 @@ msgstr "" "desenvolvimento de módulos em C++, ou plugins para o editor." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2221,10 +2229,11 @@ msgid "Conclusion" msgstr "Conclusão" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "Instâncias podem ser úteis quando você quer criar muitas cópias do mesmo " "objeto. Também é possível criar instâncias em código usando GDScript, veja :" @@ -2249,14 +2258,10 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "A habilidade de subdividir cenas e torná-las mais fáceis de gerenciar." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Uma alternativa mais flexível aos prefabs (e muito mais poderosa, já que " -"instâncias podem ser aninhadas)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2264,11 +2269,11 @@ msgstr "" "Uma maneira de organizar e embutir fluxos complexos de jogo e mesmo " "interfaces com usuário (no Godot, elementos de interface também são nós)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Linguagem de concepção" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2280,7 +2285,7 @@ msgstr "" "todos os outros motores de jogos existentes por aí afora. O Godot foi todo " "projetado pensando neste conceito." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2294,12 +2299,12 @@ msgstr "" "imaginando os elementos visíveis do seu jogo, aqueles que conseguem ser " "citados não só pelo programador, mas por qualquer um." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" "Por exemplo, aqui está como um jogo simples de tiro poderia ser imaginado:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2309,7 +2314,7 @@ msgstr "" "Anote as partes do jogo que consegue visualizar e daí adicione setas que " "representam a posse de um componente por outro." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2320,7 +2325,7 @@ msgstr "" "criar uma cena para cada elemento listado no diagrama. Você usará instâncias " "(seja por código ou diretamente pelo editor) para as relações de posse." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 #, fuzzy msgid "" "A lot of time spent in programming games (or software in general) is on " @@ -2340,7 +2345,7 @@ msgstr "" "instâncias de cena significa que se faz necessário pouco código extra para " "arquitetura." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2348,7 +2353,7 @@ msgstr "" "Vamos dar uma olhada em mais um exemplo, um tanto mais complexo, de um jogo " "do tipo mundo aberto, com muitos ativos e elementos aninhados:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2361,7 +2366,7 @@ msgstr "" "poderíamos fazer uma cena de casa, conectando aposentos para compor seu " "interior." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2371,7 +2376,7 @@ msgstr "" "instâncias de casas. Assim, poderíamos começar a trabalhar no terreno do " "mapa do mundo, adicionando a cidadela nele." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2381,7 +2386,7 @@ msgstr "" "personagens não jogáveis) e adicioná-los na cidadela também. Como resultado, " "eles seriam indiretamente adicionados no mundo do jogo." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2397,11 +2402,11 @@ msgstr "" "artistas 2D e 3D, projetistas de níveis, projetistas de jogo e animadores, " "todos trabalhando com a interface do editor." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "Sobrecarga de informações!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2411,7 +2416,7 @@ msgstr "" "cabeça. Entretanto, a parte importante deste tutorial era conscientizar como " "as cenas e suas instâncias são usadas em projetos reais." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -12826,8 +12831,8 @@ msgstr "Palavra-chave" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -13548,11 +13553,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "float" @@ -13855,8 +13860,8 @@ msgstr "Dados" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "Variáveis" @@ -24282,8 +24287,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -25030,7 +25035,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -25584,308 +25589,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Esqueleto" +msgid "2D meshes" +msgstr "Iteradores personalizados" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Criando a animação" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Configurando" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Configurando o projeto" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -42553,8 +42343,9 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" -msgstr "" +#, fuzzy +msgid "Making of GBot" +msgstr "Apagando uma cena" #: ../../docs/tutorials/animation/cutout_animation.rst:57 msgid "" @@ -42956,7 +42747,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -42993,7 +42784,773 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Esqueleto" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Criando a animação" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Configurando" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Configurando o projeto" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animação" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Criando a animação" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Criando um projeto" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +#, fuzzy +msgid "Blend tree" +msgstr "Árvore de cena" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Scale" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Organização" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "O tipo da transição" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Rotation" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -48637,7 +49194,7 @@ msgstr "Funções e Variáveis" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -48660,9 +49217,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -48680,35 +49238,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -48749,7 +49307,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -48777,8 +49335,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -48791,13 +49349,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -48820,20 +49378,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -48877,7 +49435,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -48943,9 +49501,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -48969,11 +49527,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -48993,10 +49551,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -49047,7 +49605,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -49055,7 +49613,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -49063,7 +49621,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -49080,7 +49638,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -49088,7 +49646,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -49096,7 +49654,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -49104,7 +49662,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -49112,7 +49670,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -49120,7 +49678,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -49128,7 +49686,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -49146,7 +49704,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -49155,7 +49713,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -49165,7 +49723,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -49205,7 +49763,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -49260,9 +49818,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -49282,8 +49840,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -49307,7 +49865,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -49324,9 +49882,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -49610,7 +50168,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -49631,12 +50189,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -49662,9 +50220,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -49690,7 +50248,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -49700,7 +50258,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -49732,8 +50290,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -49864,7 +50422,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -50221,7 +50779,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -50229,7 +50787,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -50354,7 +50912,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -50852,14 +51410,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -51219,7 +51777,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -51236,7 +51795,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -51326,7 +51885,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -51553,14 +52112,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -51635,9 +52194,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -51645,7 +52204,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -51747,13 +52306,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -51860,9 +52419,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -52042,7 +52601,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -52065,7 +52624,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -52093,8 +52652,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -52169,7 +52728,7 @@ msgstr "Carregando recursos a partir do código" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -52182,7 +52741,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -52192,18 +52751,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -52213,10 +52773,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -52242,7 +52802,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -52280,7 +52840,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -52303,14 +52863,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -52333,7 +52893,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -52356,7 +52916,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -52377,8 +52937,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -52386,7 +52946,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -52397,10 +52957,10 @@ msgstr "``x.attribute``" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -52413,15 +52973,15 @@ msgstr "Condição" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -52434,21 +52994,21 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 #, fuzzy msgid "Main" msgstr "Loop principal" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -52471,75 +53031,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Variável" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -52567,9 +53127,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -52594,8 +53154,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -52608,11 +53168,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -52629,40 +53189,39 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Tipo" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 #, fuzzy msgid "mainImage" msgstr "Importando Imagens" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -52674,187 +53233,187 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Cor" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 #, fuzzy msgid "iResolution" msgstr "Rotation" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 #, fuzzy msgid "Sampler2D" msgstr "Exemplo" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -52870,14 +53429,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -52950,7 +53509,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -52961,8 +53520,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -52999,7 +53558,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -53017,25 +53576,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -53050,7 +53609,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -53061,10 +53620,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -53078,22 +53637,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -53105,7 +53664,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -53124,23 +53683,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -53149,20 +53708,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -53187,8 +53746,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -53198,41 +53757,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -53247,34 +53806,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -53282,7 +53841,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -53302,7 +53861,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -53316,9 +53875,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -53343,8 +53902,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -53368,20 +53927,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -53396,7 +53955,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -53416,50 +53975,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -69735,6 +70294,19 @@ msgstr "" "'Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "'_" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Uma alternativa mais flexível aos prefabs (e muito mais poderosa, já que " +#~ "instâncias podem ser aninhadas)." + #, fuzzy #~ msgid "For the rest of the article, we will consider the following scene:" #~ msgstr "Ao longo desta série, nós cobriremos como:" diff --git a/weblate/pt_PT.po b/weblate/pt_PT.po index 3a792e47b5..74cd5c7598 100644 --- a/weblate/pt_PT.po +++ b/weblate/pt_PT.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-31 12:11+0000\n" "Last-Translator: ssantos \n" "Language-Team: Portuguese (Portugal) `_ markup " "language and then compiled into a static website/offline document using the " @@ -368,9 +374,10 @@ msgstr "" "ser o ponto de entrada para todos os novos utilizadores." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "A seção :ref:`sec-tutorials`, por outro lado, pode ser lida conforme " "necessário, em qualquer ordem. Ela contém muitos tutoriais e documentações " @@ -387,9 +394,10 @@ msgstr "" "desenvolvimento de módulos em C++, ou plugins para o editor." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2173,10 +2181,11 @@ msgid "Conclusion" msgstr "Conclusão" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "Instâncias podem ser úteis quando você quer criar muitas cópias do mesmo " "objeto. Também é possível criar instâncias em código usando GDScript, veja :" @@ -2201,14 +2210,10 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "A habilidade de subdividir cenas e torná-las mais fáceis de gerenciar." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Uma alternativa mais flexível aos prefabs (e muito mais poderosa, já que " -"instâncias podem ser aninhadas)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2216,11 +2221,11 @@ msgstr "" "Uma maneira de organizar e embutir fluxos complexos de jogo e mesmo " "interfaces com usuário (no Godot, elementos de interface também são nós)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Linguagem de concepção" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2232,7 +2237,7 @@ msgstr "" "todos os outros motores de jogos existentes por aí afora. O Godot foi todo " "projetado pensando neste conceito." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2246,12 +2251,12 @@ msgstr "" "imaginando os elementos visíveis do seu jogo, aqueles que conseguem ser " "citados não só pelo programador, mas por qualquer um." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" "Por exemplo, aqui está como um jogo simples de tiro poderia ser imaginado:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2261,7 +2266,7 @@ msgstr "" "Anote as partes do jogo que consegue visualizar e daí adicione setas que " "representam a posse de um componente por outro." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2272,7 +2277,7 @@ msgstr "" "criar uma cena para cada elemento listado no diagrama. Você usará instâncias " "(seja por código ou diretamente pelo editor) para as relações de posse." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -2291,7 +2296,7 @@ msgstr "" "base em instanciação de cenas significa que é necessário pouco código extra " "para arquitectura." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2299,7 +2304,7 @@ msgstr "" "Vamos dar uma olhada em mais um exemplo, um tanto mais complexo, de um jogo " "do tipo mundo aberto, com muitos ativos e elementos aninhados:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2312,7 +2317,7 @@ msgstr "" "poderíamos fazer uma cena de casa, conectando aposentos para compor seu " "interior." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2322,7 +2327,7 @@ msgstr "" "instâncias de casas. Assim, poderíamos começar a trabalhar no terreno do " "mapa do mundo, adicionando a cidadela nele." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2332,7 +2337,7 @@ msgstr "" "personagens não jogáveis) e adicioná-los na cidadela também. Como resultado, " "eles seriam indiretamente adicionados no mundo do jogo." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2348,11 +2353,11 @@ msgstr "" "artistas 2D e 3D, projetistas de níveis, projetistas de jogo e animadores, " "todos trabalhando com a interface do editor." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "Sobrecarga de informações!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2362,7 +2367,7 @@ msgstr "" "cabeça. Entretanto, a parte importante deste tutorial era conscientizar como " "as cenas e suas instâncias são usadas em projetos reais." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -12722,8 +12727,8 @@ msgstr "Palavra-chave" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -13444,11 +13449,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -13751,8 +13756,8 @@ msgstr "Dados" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "Variáveis" @@ -24157,8 +24162,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -24905,7 +24910,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -25459,308 +25464,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Esqueleto" +msgid "2D meshes" +msgstr "signal" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Criando a animação" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Configurando" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Configurando o projeto" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -42428,8 +42218,9 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" -msgstr "" +#, fuzzy +msgid "Making of GBot" +msgstr "Apagando uma cena" #: ../../docs/tutorials/animation/cutout_animation.rst:57 msgid "" @@ -42831,7 +42622,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -42868,7 +42659,773 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Esqueleto" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Criando a animação" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Configurando" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Configurando o projeto" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animação" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Criando a animação" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Criando um projeto" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +#, fuzzy +msgid "Blend tree" +msgstr "Árvore de cena" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Scale" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Organização" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "O tipo da transição" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Rotation" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -48512,7 +49069,7 @@ msgstr "Define uma variavel." #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -48535,9 +49092,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -48555,35 +49113,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -48624,7 +49182,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -48652,8 +49210,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -48666,13 +49224,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -48695,20 +49253,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -48752,7 +49310,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -48818,9 +49376,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -48844,11 +49402,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -48868,10 +49426,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -48922,7 +49480,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -48930,7 +49488,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -48938,7 +49496,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -48955,7 +49513,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -48963,7 +49521,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -48971,7 +49529,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -48979,7 +49537,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -48987,7 +49545,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -48995,7 +49553,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -49003,7 +49561,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -49021,7 +49579,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -49030,7 +49588,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -49040,7 +49598,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -49080,7 +49638,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -49135,9 +49693,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -49157,8 +49715,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -49182,7 +49740,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -49199,9 +49757,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -49485,7 +50043,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -49506,12 +50064,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -49537,9 +50095,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -49565,7 +50123,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -49575,7 +50133,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -49607,8 +50165,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -49739,7 +50297,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -50096,7 +50654,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -50104,7 +50662,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -50229,7 +50787,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -50727,14 +51285,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -51094,7 +51652,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -51111,7 +51670,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -51201,7 +51760,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -51428,14 +51987,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -51510,9 +52069,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -51520,7 +52079,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -51622,13 +52181,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -51735,9 +52294,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -51917,7 +52476,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -51940,7 +52499,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -51968,8 +52527,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -52044,7 +52603,7 @@ msgstr "Carregando recursos a partir do código" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -52057,7 +52616,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -52067,18 +52626,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -52088,10 +52648,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -52117,7 +52677,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -52155,7 +52715,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -52178,14 +52738,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -52208,7 +52768,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -52231,7 +52791,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -52252,8 +52812,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -52261,7 +52821,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -52272,10 +52832,10 @@ msgstr "``x.attribute``" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -52288,15 +52848,15 @@ msgstr "Condição" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -52309,21 +52869,21 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 #, fuzzy msgid "Main" msgstr "Loop principal" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -52346,75 +52906,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Variável" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -52442,9 +53002,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -52469,8 +53029,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -52483,11 +53043,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -52504,40 +53064,39 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Tipo" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 #, fuzzy msgid "mainImage" msgstr "Importando Imagens" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -52549,187 +53108,187 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Cor" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 #, fuzzy msgid "iResolution" msgstr "Rotation" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 #, fuzzy msgid "Sampler2D" msgstr "Exemplo" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -52745,14 +53304,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -52825,7 +53384,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -52836,8 +53395,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -52874,7 +53433,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -52892,25 +53451,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -52925,7 +53484,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -52936,10 +53495,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -52953,22 +53512,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -52980,7 +53539,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -52999,23 +53558,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -53024,20 +53583,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -53062,8 +53621,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -53073,41 +53632,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -53122,34 +53681,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -53157,7 +53716,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -53177,7 +53736,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -53191,9 +53750,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -53218,8 +53777,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -53243,20 +53802,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -53271,7 +53830,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -53291,50 +53850,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -69608,6 +70167,19 @@ msgstr "" "'Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "'_" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Uma alternativa mais flexível aos prefabs (e muito mais poderosa, já que " +#~ "instâncias podem ser aninhadas)." + #, fuzzy #~ msgid "For the rest of the article, we will consider the following scene:" #~ msgstr "Ao longo desta série, nós cobriremos como:" diff --git a/weblate/ro.po b/weblate/ro.po index 4ed6f7fc9b..d5bbce1313 100644 --- a/weblate/ro.po +++ b/weblate/ro.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-08-05 00:52+0000\n" "Last-Translator: Grigore Antoniuc \n" "Language-Team: Romanian `_ markup " "language and then compiled into a static website/offline document using the " @@ -362,9 +368,10 @@ msgstr "" "utilizatorii noi." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "Pe de altă parte, secțiunea :ref:`sec-tutorials`, poate fi citită, dacă este " "necesar, în orice ordine. Aceasta conține multe tutoriale și documentații " @@ -384,7 +391,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1784,7 +1791,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1804,22 +1811,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1827,7 +1832,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1836,18 +1841,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1855,7 +1860,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1866,13 +1871,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1880,21 +1885,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1904,18 +1909,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9402,8 +9407,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10088,11 +10093,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10337,8 +10342,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19142,8 +19147,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19882,7 +19887,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20432,306 +20437,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Creare de conținut" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Creare de conținut" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36991,7 +36782,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37394,7 +37185,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37431,7 +37222,767 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Creare de conținut" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Creare de conținut" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animație" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Creare de conținut" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Creare de conținut" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Animație" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43059,7 +43610,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43082,9 +43633,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43101,35 +43653,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43169,7 +43721,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43196,8 +43748,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43210,13 +43762,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43238,20 +43790,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43294,7 +43846,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43357,9 +43909,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43382,11 +43934,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43405,10 +43957,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43459,7 +44011,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43467,7 +44019,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43475,7 +44027,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43492,7 +44044,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43500,7 +44052,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43508,7 +44060,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43516,7 +44068,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43524,7 +44076,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43532,7 +44084,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43540,7 +44092,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43558,7 +44110,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43567,7 +44119,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43577,7 +44129,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43617,7 +44169,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43672,9 +44224,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43694,8 +44246,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43719,7 +44271,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43736,9 +44288,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44021,7 +44573,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44042,12 +44594,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44073,9 +44625,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44101,7 +44653,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44111,7 +44663,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44143,8 +44695,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44270,7 +44822,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44626,7 +45178,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44634,7 +45186,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44759,7 +45311,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45256,14 +45808,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45622,7 +46174,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45639,7 +46192,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45729,7 +46282,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45955,14 +46508,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46037,9 +46590,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46047,7 +46600,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46149,13 +46702,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46262,9 +46815,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46444,7 +46997,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46467,7 +47020,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46495,8 +47048,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46565,7 +47118,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46578,7 +47131,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46588,18 +47141,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46609,10 +47163,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46638,7 +47192,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46676,7 +47230,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46699,14 +47253,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46729,7 +47283,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46751,7 +47305,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46772,8 +47326,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46781,7 +47335,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46791,10 +47345,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46806,15 +47360,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46827,20 +47381,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46863,75 +47417,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46959,9 +47513,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46986,8 +47540,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47000,11 +47554,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47021,38 +47575,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47064,184 +47617,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47257,14 +47810,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47337,7 +47890,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47348,8 +47901,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47386,7 +47939,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47404,25 +47957,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47437,7 +47990,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47448,10 +48001,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47465,22 +48018,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47492,7 +48045,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47511,23 +48064,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47536,20 +48089,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47574,8 +48127,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47585,41 +48138,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47634,34 +48187,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47669,7 +48222,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47688,7 +48241,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47702,9 +48255,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47729,8 +48282,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47754,20 +48307,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47782,7 +48335,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47801,50 +48354,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63955,6 +64508,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #~ msgid "Mac OS X" #~ msgstr "Mac OS X" diff --git a/weblate/ru.po b/weblate/ru.po index e263d4467c..ffb1b5e275 100644 --- a/weblate/ru.po +++ b/weblate/ru.po @@ -69,7 +69,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-09 09:13+0000\n" "Last-Translator: Александр \n" "Language-Team: Russian `_ markup " "language and then compiled into a static website/offline document using the " @@ -411,9 +417,10 @@ msgstr "" "всех новых пользователей." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "В отличие от предыдущей, секцию :ref:`sec-tutorials` можно читать в любом " "порядке по мере необходимости. Там находятся руководства и документация по " @@ -430,9 +437,10 @@ msgstr "" "компилировать движок, разрабатывать модули на C++ или плагины для редактора." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -2218,10 +2226,11 @@ msgid "Conclusion" msgstr "Вывод" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "Создавать экземпляры может быть полезно, если вы хотите создать много копий " "одного и того же объекта. Также возможно создать экземпляр используя " @@ -2246,14 +2255,10 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "Возможность разделить сцены и сделать управление ими проще." #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"Более гибкая альтернатива сборкам, которые вы, возможно, знаете из Unity (и " -"гораздо более мощные, учитывая, что экземпляры могут быть вложенными)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." @@ -2262,11 +2267,11 @@ msgstr "" "пользовательского интерфейса (в Godot элементы пользовательского интерфейса " "тоже являются узлами)." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "Дизайн" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2278,7 +2283,7 @@ msgstr "" "степени отличает Godot от всех других движков. Godot был разработан с нуля " "вокруг этой концепции." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2292,11 +2297,11 @@ msgstr "" "образом. Начните с воображения видимых элементов в вашей игре, тех, которые " "может назвать не только программист, но и кто угодно." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "Например, вот как можно представить себе простую игру-шутер:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2306,7 +2311,7 @@ msgstr "" "игры, которые вы можете визуализировать, а затем добавьте стрелки, чтобы " "показать принадлежность одних компонентов другим." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2318,7 +2323,7 @@ msgstr "" "экземпляров (либо в коде, либо непосредственно в редакторе) для задания " "принадлежности одних компонентов к другим." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -2337,7 +2342,7 @@ msgstr "" "основанного на создании экземпляра сцены означает, что требуется немного " "другой подход для ее построения." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" @@ -2345,7 +2350,7 @@ msgstr "" "Рассмотрим еще один, несколько более сложный пример игры открытого типа с " "большим количеством ресурсов и вложенных элементов:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2357,7 +2362,7 @@ msgstr "" "расположениями мебели (также сцены) в них. Позже мы могли бы сделать сцену " "дома, соединяя комнаты, чтобы создать его интерьер." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2367,7 +2372,7 @@ msgstr "" "экземпляров домов. Затем мы могли бы начать работать над рельефом карты " "мира, добавив на нее нашу крепость." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2377,7 +2382,7 @@ msgstr "" "других NPC) и добавить их в нашу крепость. В результате, они будут косвенно " "добавлены в общий игровой мир." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2393,11 +2398,11 @@ msgstr "" "2D или 3D художников, дизайнеров уровней, гейм-дизайнеров и аниматоров, и " "все работают с одним интерфейсом редактора." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "Информационная перегрузка!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2407,7 +2412,7 @@ msgstr "" "частью этого урока было освещение вопроса о том, как сцены и создание их " "экземпляров используются в реальных проектах." -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -12809,8 +12814,8 @@ msgstr "Ключевое слово" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -13528,11 +13533,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "float" @@ -13838,8 +13843,8 @@ msgstr "Данные" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "Переменные" @@ -23047,8 +23052,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -23789,7 +23794,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -24342,308 +24347,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Скелет" +msgid "2D meshes" +msgstr "Пользовательские сигналы" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Создание анимации" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Создание сценариев сцены" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Настройка проекта" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -41105,7 +40895,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -41508,7 +41298,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -41545,7 +41335,773 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Скелет" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Создание анимации" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Создание сценариев сцены" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Настройка проекта" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Анимация" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Создание анимации" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Создание проекта" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +#, fuzzy +msgid "Blend tree" +msgstr "Дерево сцены" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Пример таймера" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Условие" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Тип перехода" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Векторные Операции" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -47189,7 +47745,7 @@ msgstr "Функции и Переменные" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -47212,9 +47768,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -47232,35 +47789,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -47301,7 +47858,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -47328,8 +47885,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -47342,14 +47899,14 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 #, fuzzy msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" "Для получения дополнительной информации о самих событиях ввода посмотрите " @@ -47375,20 +47932,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -47442,7 +47999,7 @@ msgstr "\"particles\": Для систем частиц." #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -47511,9 +48068,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -47536,11 +48093,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -47559,10 +48116,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -47618,7 +48175,8 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +#, fuzzy +msgid "Two-component vector of booleans." msgstr "Двух-компонентный булевый вектор." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -47626,7 +48184,8 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +#, fuzzy +msgid "Three-component vector of booleans." msgstr "Трёх-компонентный булевый вектор." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -47634,7 +48193,8 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +#, fuzzy +msgid "Four-component vector of booleans." msgstr "Четырёх-компонентный булевый вектор." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -47651,7 +48211,8 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +#, fuzzy +msgid "Two-component vector of signed integers." msgstr "Двух-компонентный вектор целых чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -47659,7 +48220,8 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +#, fuzzy +msgid "Three-component vector of signed integers." msgstr "Трёх-компонентный вектор целых чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -47667,7 +48229,8 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +#, fuzzy +msgid "Four-component vector of signed integers." msgstr "Четырёх-компонентный вектор целых чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -47675,7 +48238,8 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +#, fuzzy +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "Без-знаковое целое число, не может содержать отрицательных значений." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -47683,7 +48247,8 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +#, fuzzy +msgid "Two-component vector of unsigned integers." msgstr "Двух-компонентный вектор без-знаковых чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -47691,7 +48256,8 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +#, fuzzy +msgid "Three-component vector of unsigned integers." msgstr "Трёх-компонентный вектор без-знаковых чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -47699,7 +48265,8 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +#, fuzzy +msgid "Four-component vector of unsigned integers." msgstr "Четырёх-компонентный вектор без-знаковых чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -47717,7 +48284,8 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +#, fuzzy +msgid "Two-component vector of floating point values." msgstr "Двух-компонентный вектор дробных чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -47726,7 +48294,8 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +#, fuzzy +msgid "Three-component vector of floating point values." msgstr "Трёх-компонентный вектор дробных чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -47736,7 +48305,8 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +#, fuzzy +msgid "Four-component vector of floating point values." msgstr "Четырёх-компонентный вектор дробных чисел." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -47776,7 +48346,8 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +#, fuzzy +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" "Сэмплер, для биндинга 2D текстур, которые читаются через дробные числа." @@ -47842,9 +48413,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -47864,8 +48435,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -47889,7 +48460,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -47906,9 +48477,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -48191,7 +48762,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -48212,12 +48783,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -48243,9 +48814,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -48271,7 +48842,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -48281,7 +48852,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -48313,8 +48884,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -48443,7 +49014,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -48800,7 +49371,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -48808,7 +49379,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -48933,7 +49504,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -49433,14 +50004,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -49800,7 +50371,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -49817,7 +50389,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -49907,7 +50479,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -50133,14 +50705,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -50215,9 +50787,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -50225,7 +50797,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -50327,13 +50899,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -50440,9 +51012,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -50622,7 +51194,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -50645,7 +51217,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -50673,8 +51245,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -50743,7 +51315,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -50756,7 +51328,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -50766,18 +51338,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -50787,10 +51360,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -50816,7 +51389,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -50854,7 +51427,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -50877,14 +51450,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -50907,7 +51480,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -50928,10 +51501,13 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 +#, fuzzy msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" +"Для получения дополнительной информации о самих событиях ввода посмотрите " +"руководство :ref:`Input Event Tutorial`." #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:17 msgid "GLSL" @@ -50951,8 +51527,8 @@ msgstr "Типы Шейдеров" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -50960,7 +51536,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -50970,10 +51546,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -50986,15 +51562,15 @@ msgstr "Условие" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -51007,20 +51583,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -51043,75 +51619,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Переменная" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -51139,9 +51715,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -51167,8 +51743,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 #, fuzzy msgid "Coordinates" msgstr "Системы координат (2D)" @@ -51182,11 +51758,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -51204,40 +51780,39 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Тип" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 #, fuzzy msgid "mainImage" msgstr "Главное меню" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -51249,186 +51824,186 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Цвет" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 #, fuzzy msgid "iResolution" msgstr "Отражение" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -51444,14 +52019,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -51524,7 +52099,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -51535,8 +52110,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -51573,7 +52148,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -51591,25 +52166,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -51624,7 +52199,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -51635,10 +52210,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -51652,22 +52227,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -51679,7 +52254,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -51698,23 +52273,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -51723,20 +52298,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -51761,8 +52336,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -51772,41 +52347,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -51821,34 +52396,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -51856,7 +52431,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -51876,7 +52451,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -51890,9 +52465,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -51917,8 +52492,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -51942,20 +52517,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -51970,7 +52545,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -51989,50 +52564,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -68371,6 +68946,19 @@ msgstr "" "`Zeef Godot Engine: Курируемая директория ресурсов от Andre Schmitz `_" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "Более гибкая альтернатива сборкам, которые вы, возможно, знаете из Unity " +#~ "(и гораздо более мощные, учитывая, что экземпляры могут быть вложенными)." + #, fuzzy #~ msgid "" #~ "GameObject -> Node Add a component -> Inheriting Prefab -> Externalized " diff --git a/weblate/sk.po b/weblate/sk.po index 719afdfa39..d9bb431a14 100644 --- a/weblate/sk.po +++ b/weblate/sk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-06-15 17:43+0000\n" "Last-Translator: MineGame 159 \n" "Language-Team: Slovak `_ markup " "language and then compiled into a static website/offline document using the " @@ -282,8 +284,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -296,7 +298,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1631,7 +1633,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1651,22 +1653,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1674,7 +1674,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1683,18 +1683,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1702,7 +1702,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1713,13 +1713,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1727,21 +1727,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1751,18 +1751,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9245,8 +9245,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9930,11 +9930,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10179,8 +10179,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -18969,8 +18969,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19708,7 +19708,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20258,304 +20258,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36808,7 +36596,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37211,7 +36999,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37248,7 +37036,761 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +msgid "Creating an AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +msgid "Creating a tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42876,7 +43418,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42899,9 +43441,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42918,35 +43461,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -42986,7 +43529,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43013,8 +43556,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43027,13 +43570,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43055,20 +43598,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43111,7 +43654,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43174,9 +43717,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43199,11 +43742,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43222,10 +43765,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43276,7 +43819,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43284,7 +43827,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43292,7 +43835,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43309,7 +43852,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43317,7 +43860,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43325,7 +43868,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43333,7 +43876,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43341,7 +43884,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43349,7 +43892,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43357,7 +43900,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43375,7 +43918,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43384,7 +43927,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43394,7 +43937,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43434,7 +43977,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43489,9 +44032,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43511,8 +44054,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43536,7 +44079,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43553,9 +44096,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43838,7 +44381,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43859,12 +44402,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43890,9 +44433,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43918,7 +44461,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43928,7 +44471,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -43960,8 +44503,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44086,7 +44629,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44442,7 +44985,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44450,7 +44993,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44575,7 +45118,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45072,14 +45615,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45438,7 +45981,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45455,7 +45999,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45545,7 +46089,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45770,14 +46314,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45852,9 +46396,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45862,7 +46406,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -45964,13 +46508,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46076,9 +46620,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46258,7 +46802,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46281,7 +46825,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46309,8 +46853,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46379,7 +46923,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46392,7 +46936,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46402,18 +46946,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46423,10 +46968,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46452,7 +46997,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46490,7 +47035,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46513,14 +47058,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46543,7 +47088,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46565,7 +47110,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46586,8 +47131,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46595,7 +47140,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46605,10 +47150,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46620,15 +47165,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46641,20 +47186,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46677,75 +47222,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46773,9 +47318,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46800,8 +47345,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46814,11 +47359,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46835,38 +47380,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46878,184 +47422,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47071,14 +47615,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47151,7 +47695,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47162,8 +47706,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47200,7 +47744,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47218,25 +47762,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47251,7 +47795,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47262,10 +47806,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47279,22 +47823,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47306,7 +47850,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47325,23 +47869,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47350,20 +47894,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47388,8 +47932,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47399,41 +47943,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47448,34 +47992,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47483,7 +48027,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47502,7 +48046,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47516,9 +48060,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47543,8 +48087,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47568,20 +48112,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47596,7 +48140,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47615,50 +48159,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63762,3 +64306,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/sl.po b/weblate/sl.po index a282ee3489..bc00b9c6d6 100644 --- a/weblate/sl.po +++ b/weblate/sl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-06-26 13:44+0000\n" "Last-Translator: matevž lapajne \n" "Language-Team: Slovenian `_ markup " "language and then compiled into a static website/offline document using the " @@ -326,9 +332,10 @@ msgstr "" "katera bi morala biti vstopna točka za vse nove uporabnike." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" ":ref:`sec-tutorials` odstavek, na drugi strani pa je lahko prebran, ko ga " "potrebujemo, v katerem koli vrstnem redu. Vsebuje veliko značilno-določenih " @@ -348,7 +355,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1776,7 +1783,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1796,22 +1803,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1819,7 +1824,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1828,18 +1833,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1847,7 +1852,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1858,13 +1863,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1872,21 +1877,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1896,18 +1901,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9396,8 +9401,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10083,11 +10088,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10332,8 +10337,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19137,8 +19142,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19876,7 +19881,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20426,304 +20431,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -msgid "Creating the skeleton" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36985,7 +36778,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37388,7 +37181,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37425,7 +37218,765 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +msgid "Creating the skeleton" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animacija" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Animacija" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +msgid "Creating a tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Preoblikovanje" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Godot nima omejitve uporabe" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43053,7 +43604,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43076,9 +43627,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43095,35 +43647,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43163,7 +43715,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43190,8 +43742,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43204,13 +43756,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43232,20 +43784,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43288,7 +43840,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43351,9 +43903,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43376,11 +43928,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43399,10 +43951,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43453,7 +44005,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43461,7 +44013,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43469,7 +44021,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43486,7 +44038,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43494,7 +44046,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43502,7 +44054,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43510,7 +44062,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43518,7 +44070,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43526,7 +44078,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43534,7 +44086,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43552,7 +44104,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43561,7 +44113,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43571,7 +44123,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43611,7 +44163,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43666,9 +44218,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43688,8 +44240,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43713,7 +44265,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43730,9 +44282,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44015,7 +44567,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44036,12 +44588,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44067,9 +44619,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44095,7 +44647,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44105,7 +44657,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44137,8 +44689,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44266,7 +44818,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44622,7 +45174,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44630,7 +45182,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44755,7 +45307,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45252,14 +45804,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45618,7 +46170,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45635,7 +46188,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45725,7 +46278,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45951,14 +46504,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46033,9 +46586,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46043,7 +46596,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46145,13 +46698,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46257,9 +46810,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46439,7 +46992,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46462,7 +47015,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46490,8 +47043,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46560,7 +47113,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46573,7 +47126,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46583,18 +47136,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46604,10 +47158,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46633,7 +47187,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46671,7 +47225,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46694,14 +47248,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46724,7 +47278,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46746,7 +47300,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46767,8 +47321,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46776,7 +47330,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46786,10 +47340,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46801,15 +47355,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46822,20 +47376,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46858,75 +47412,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46954,9 +47508,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46981,8 +47535,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46995,11 +47549,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47016,38 +47570,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47059,184 +47612,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47252,14 +47805,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47332,7 +47885,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47343,8 +47896,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47381,7 +47934,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47399,25 +47952,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47432,7 +47985,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47443,10 +47996,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47460,22 +48013,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47487,7 +48040,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47506,23 +48059,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47531,20 +48084,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47569,8 +48122,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47580,41 +48133,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47629,34 +48182,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47664,7 +48217,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47683,7 +48236,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47697,9 +48250,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47724,8 +48277,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47749,20 +48302,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47777,7 +48330,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47796,50 +48349,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63962,6 +64515,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "Godot nima omejitve uporabe" @@ -63973,10 +64532,6 @@ msgstr "" #~ msgid "Supported Animation" #~ msgstr "Animacija" -#, fuzzy -#~ msgid "Placing of AnimationPlayer" -#~ msgstr "Animacija" - #~ msgid "" #~ "This means it is free as in \"free speech\" as well as in \"free beer\"." #~ msgstr "To pomeni da je zastonj kot \"free speech\" kot tudi \"free beer\"." diff --git a/weblate/sr_Latn.po b/weblate/sr_Latn.po index 02570dba21..17fe2ab36b 100644 --- a/weblate/sr_Latn.po +++ b/weblate/sr_Latn.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-13 10:15+0000\n" "Last-Translator: Vojislav Bajakic \n" "Language-Team: Serbian (latin) `_ markup " "language and then compiled into a static website/offline document using the " @@ -347,9 +353,10 @@ msgstr "" "početna tačka za sve nove korisnike." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "S druge strane, :ref:`sec-tutorials` sekcija se može čitati u bilo kojem " "redosljedu. Sadrži mnoga uputstva i dokumentaciju koja objašnjava " @@ -366,9 +373,10 @@ msgstr "" "endžina, razvoju C++ modula i/ili dodataka editor." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1751,7 +1759,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1771,22 +1779,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1794,7 +1800,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1803,18 +1809,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1822,7 +1828,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1833,13 +1839,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1847,21 +1853,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1871,18 +1877,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9366,8 +9372,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10052,11 +10058,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10301,8 +10307,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19096,8 +19102,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19835,7 +19841,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20385,306 +20391,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Kreiranje Sadržaja" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Kreiranje Sadržaja" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36938,7 +36730,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37341,7 +37133,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37378,7 +37170,766 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Kreiranje Sadržaja" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Kreiranje Sadržaja" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Kreiranje Sadržaja" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Kreiranje Sadržaja" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Ne postoje ograničenja prilikom korištenja Godot-a" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43006,7 +43557,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43029,9 +43580,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43048,35 +43600,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43116,7 +43668,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43143,8 +43695,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43157,13 +43709,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43185,20 +43737,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43241,7 +43793,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43304,9 +43856,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43329,11 +43881,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43352,10 +43904,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43406,7 +43958,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43414,7 +43966,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43422,7 +43974,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43439,7 +43991,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43447,7 +43999,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43455,7 +44007,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43463,7 +44015,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43471,7 +44023,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43479,7 +44031,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43487,7 +44039,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43505,7 +44057,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43514,7 +44066,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43524,7 +44076,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43564,7 +44116,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43619,9 +44171,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43641,8 +44193,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43666,7 +44218,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43683,9 +44235,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43968,7 +44520,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43989,12 +44541,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44020,9 +44572,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44048,7 +44600,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44058,7 +44610,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44090,8 +44642,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44217,7 +44769,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44573,7 +45125,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44581,7 +45133,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44706,7 +45258,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45203,14 +45755,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45569,7 +46121,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45586,7 +46139,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45676,7 +46229,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45901,14 +46454,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45983,9 +46536,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45993,7 +46546,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46095,13 +46648,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46207,9 +46760,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46389,7 +46942,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46412,7 +46965,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46440,8 +46993,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46510,7 +47063,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46523,7 +47076,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46533,18 +47086,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46554,10 +47108,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46583,7 +47137,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46621,7 +47175,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46644,14 +47198,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46674,7 +47228,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46696,7 +47250,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46717,8 +47271,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46726,7 +47280,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46736,10 +47290,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46751,15 +47305,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46772,20 +47326,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46808,75 +47362,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46904,9 +47458,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46931,8 +47485,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46945,11 +47499,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46966,38 +47520,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47009,184 +47562,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47202,14 +47755,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47282,7 +47835,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47293,8 +47846,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47331,7 +47884,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47349,25 +47902,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47382,7 +47935,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47393,10 +47946,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47410,22 +47963,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47437,7 +47990,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47456,23 +48009,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47481,20 +48034,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47519,8 +48072,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47530,41 +48083,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47579,34 +48132,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47614,7 +48167,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47633,7 +48186,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47647,9 +48200,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47674,8 +48227,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47699,20 +48252,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47727,7 +48280,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47746,50 +48299,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63905,6 +64458,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "Ne postoje ograničenja prilikom korištenja Godot-a" diff --git a/weblate/sv.po b/weblate/sv.po index 069a68a30e..f0b62f01a0 100644 --- a/weblate/sv.po +++ b/weblate/sv.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-10-03 05:37+0000\n" "Last-Translator: Christoffer Sundbom \n" "Language-Team: Swedish `_ markup " "language and then compiled into a static website/offline document using the " @@ -360,9 +366,10 @@ msgstr "" "nybörjare." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "Avdelningen :ref:`sec-tutorials` , å andra sidan, kan besökas efter behov, " "utan någon speciell ordning. Den innehåller många funktions-specifika guider " @@ -382,7 +389,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1793,7 +1800,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1813,22 +1820,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1836,7 +1841,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1845,18 +1850,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1864,7 +1869,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1875,13 +1880,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1889,21 +1894,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1913,18 +1918,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9437,8 +9442,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10123,11 +10128,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10372,8 +10377,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19167,8 +19172,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19906,7 +19911,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20456,306 +20461,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Skapa innehåll" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Skapa innehåll" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -37011,7 +36802,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37414,7 +37205,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37451,7 +37242,766 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Skapa innehåll" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Skapa innehåll" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Skapa innehåll" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Skapa innehåll" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Skapa innehåll" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43079,7 +43629,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43102,9 +43652,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43121,35 +43672,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43189,7 +43740,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43216,8 +43767,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43230,13 +43781,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43258,20 +43809,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43314,7 +43865,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43377,9 +43928,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43402,11 +43953,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43425,10 +43976,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43479,7 +44030,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43487,7 +44038,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43495,7 +44046,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43512,7 +44063,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43520,7 +44071,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43528,7 +44079,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43536,7 +44087,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43544,7 +44095,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43552,7 +44103,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43560,7 +44111,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43578,7 +44129,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43587,7 +44138,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43597,7 +44148,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43637,7 +44188,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43692,9 +44243,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43714,8 +44265,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43739,7 +44290,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43756,9 +44307,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44041,7 +44592,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44062,12 +44613,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44093,9 +44644,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44121,7 +44672,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44131,7 +44682,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44163,8 +44714,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44289,7 +44840,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44645,7 +45196,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44653,7 +45204,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44778,7 +45329,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45275,14 +45826,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45641,7 +46192,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45658,7 +46210,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45748,7 +46300,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45973,14 +46525,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46055,9 +46607,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46065,7 +46617,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46167,13 +46719,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46279,9 +46831,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46461,7 +47013,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46484,7 +47036,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46512,8 +47064,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46582,7 +47134,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46595,7 +47147,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46605,18 +47157,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46626,10 +47179,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46655,7 +47208,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46693,7 +47246,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46716,14 +47269,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46746,7 +47299,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46768,7 +47321,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46789,8 +47342,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46798,7 +47351,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46808,10 +47361,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46823,15 +47376,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46844,20 +47397,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46880,75 +47433,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46976,9 +47529,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -47003,8 +47556,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47017,11 +47570,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47038,39 +47591,38 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Typ" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47082,184 +47634,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47275,14 +47827,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47355,7 +47907,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47366,8 +47918,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47404,7 +47956,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47422,25 +47974,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47455,7 +48007,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47466,10 +48018,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47483,22 +48035,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47510,7 +48062,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47529,23 +48081,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47554,20 +48106,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47592,8 +48144,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47603,41 +48155,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47652,34 +48204,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47687,7 +48239,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47706,7 +48258,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47720,9 +48272,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47747,8 +48299,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47772,20 +48324,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47800,7 +48352,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47819,50 +48371,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63969,6 +64521,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #~ msgid "Mac OS X" #~ msgstr "Mac OS X" diff --git a/weblate/te.po b/weblate/te.po index f784e40724..8441c58966 100644 --- a/weblate/te.po +++ b/weblate/te.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-10-11 08:35+0000\n" "Last-Translator: Chanda Venkata Ramana Moorthy \n" "Language-Team: Telugu `_ markup " "language and then compiled into a static website/offline document using the " @@ -293,8 +295,8 @@ msgstr "" #: ../../docs/about/introduction.rst:80 msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" #: ../../docs/about/introduction.rst:82 @@ -307,7 +309,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1642,7 +1644,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1662,22 +1664,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1685,7 +1685,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1694,18 +1694,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1713,7 +1713,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1724,13 +1724,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1738,21 +1738,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1762,18 +1762,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9256,8 +9256,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -9941,11 +9941,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10190,8 +10190,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -18983,8 +18983,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19722,7 +19722,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20272,306 +20272,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "కంటెంట్ ను సృష్టించడం" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "కంటెంట్ ను సృష్టించడం" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36826,7 +36612,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37229,7 +37015,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37266,7 +37052,766 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "కంటెంట్ ను సృష్టించడం" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "కంటెంట్ ను సృష్టించడం" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "కంటెంట్ ను సృష్టించడం" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "కంటెంట్ ను సృష్టించడం" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "కంటెంట్ ను సృష్టించడం" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -42894,7 +43439,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -42917,9 +43462,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -42936,35 +43482,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43004,7 +43550,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43031,8 +43577,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43045,13 +43591,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43073,20 +43619,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43129,7 +43675,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43192,9 +43738,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43217,11 +43763,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43240,10 +43786,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43294,7 +43840,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43302,7 +43848,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43310,7 +43856,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43327,7 +43873,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43335,7 +43881,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43343,7 +43889,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43351,7 +43897,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43359,7 +43905,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43367,7 +43913,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43375,7 +43921,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43393,7 +43939,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43402,7 +43948,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43412,7 +43958,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43452,7 +43998,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43507,9 +44053,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43529,8 +44075,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43554,7 +44100,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43571,9 +44117,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43856,7 +44402,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43877,12 +44423,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -43908,9 +44454,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -43936,7 +44482,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -43946,7 +44492,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -43978,8 +44524,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44104,7 +44650,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44460,7 +45006,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44468,7 +45014,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44593,7 +45139,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45090,14 +45636,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45456,7 +46002,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45473,7 +46020,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45563,7 +46110,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45788,14 +46335,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45870,9 +46417,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45880,7 +46427,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -45982,13 +46529,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46094,9 +46641,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46276,7 +46823,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46299,7 +46846,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46327,8 +46874,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46397,7 +46944,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46410,7 +46957,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46420,18 +46967,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46441,10 +46989,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46470,7 +47018,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46508,7 +47056,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46531,14 +47079,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46561,7 +47109,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46583,7 +47131,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46604,8 +47152,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46613,7 +47161,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46623,10 +47171,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46638,15 +47186,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46659,20 +47207,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46695,75 +47243,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46791,9 +47339,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46818,8 +47366,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46832,11 +47380,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46853,38 +47401,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -46896,184 +47443,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47089,14 +47636,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47169,7 +47716,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47180,8 +47727,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47218,7 +47765,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47236,25 +47783,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47269,7 +47816,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47280,10 +47827,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47297,22 +47844,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47324,7 +47871,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47343,23 +47890,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47368,20 +47915,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47406,8 +47953,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47417,41 +47964,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47466,34 +48013,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47501,7 +48048,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47520,7 +48067,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47534,9 +48081,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47561,8 +48108,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47586,20 +48133,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47614,7 +48161,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47633,50 +48180,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63781,3 +64328,9 @@ msgid "" "`Zeef Godot Engine: A curated directory of resources by Andre Schmitz " "`_" msgstr "" + +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" diff --git a/weblate/th.po b/weblate/th.po index f4cd9e293a..fc6c2cf815 100644 --- a/weblate/th.po +++ b/weblate/th.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-04-17 12:41+0000\n" "Last-Translator: Poommetee Ketson \n" "Language-Team: Thai `_ markup " "language and then compiled into a static website/offline document using the " @@ -316,9 +322,10 @@ msgstr "" "learn-step_by_step>` ซึ่งแนะนำเป็นอย่างยิ่งสำหรับผู้เริ่มต้น" #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "ส่วน :ref:`sec-tutorials` สามารถเลือกอ่านได้ตามต้องการ และอ่านบทความใดก่อนก็ได้ " "ประกอบด้วยเนื้อหาเกี่ยวกับฟีเจอร์ต่าง ๆ และการสอนการใช้งาน" @@ -336,7 +343,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1787,7 +1794,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1807,22 +1814,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1830,7 +1835,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1839,18 +1844,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1858,7 +1863,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1869,13 +1874,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1883,21 +1888,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1907,18 +1912,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9408,8 +9413,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10100,11 +10105,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10349,8 +10354,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19204,8 +19209,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19943,7 +19948,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20493,305 +20498,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 -msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 -msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 -msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 -msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 -msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 -msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 -msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 -msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 -msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -msgid "Creating the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 -msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 -msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "Creating the skeleton" -msgstr "การใช้ใน GDScript" +msgid "2D meshes" +msgstr "สัญญาณ" -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -37056,7 +36849,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37459,7 +37252,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37496,7 +37289,768 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +msgid "Creating the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "การใช้ใน GDScript" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "เงื่อนไข" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "การใช้ใน GDScript" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "การใช้ใน GDScript" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "เงื่อนไข" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "ไม่มีข้อจำกัดการใช้งาน Godot" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "เงื่อนไข" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43124,7 +43678,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43147,9 +43701,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43166,35 +43721,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43234,7 +43789,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43261,8 +43816,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43275,13 +43830,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43303,20 +43858,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43360,7 +43915,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43424,9 +43979,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43449,11 +44004,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43472,10 +44027,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43526,7 +44081,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43534,7 +44089,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43542,7 +44097,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43559,7 +44114,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43567,7 +44122,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43575,7 +44130,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43583,7 +44138,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43591,7 +44146,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43599,7 +44154,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43607,7 +44162,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43625,7 +44180,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43634,7 +44189,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43644,7 +44199,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43684,7 +44239,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43739,9 +44294,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43761,8 +44316,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43786,7 +44341,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43803,9 +44358,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44088,7 +44643,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44109,12 +44664,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44140,9 +44695,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44168,7 +44723,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44178,7 +44733,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44210,8 +44765,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44337,7 +44892,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44693,7 +45248,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44701,7 +45256,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44826,7 +45381,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45323,14 +45878,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45689,7 +46244,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45706,7 +46262,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45796,7 +46352,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -46021,14 +46577,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46103,9 +46659,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46113,7 +46669,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46215,13 +46771,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46327,9 +46883,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46509,7 +47065,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46532,7 +47088,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46560,8 +47116,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46630,7 +47186,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46643,7 +47199,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46653,18 +47209,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46674,10 +47231,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46703,7 +47260,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46741,7 +47298,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46764,14 +47321,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46794,7 +47351,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46816,7 +47373,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46837,8 +47394,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46846,7 +47403,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46856,10 +47413,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46872,15 +47429,15 @@ msgstr "เงื่อนไข" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46893,20 +47450,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46929,75 +47486,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -47025,9 +47582,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -47052,8 +47609,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47066,11 +47623,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47087,38 +47644,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47130,184 +47686,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47323,14 +47879,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47403,7 +47959,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47414,8 +47970,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47452,7 +48008,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47470,25 +48026,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47503,7 +48059,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47514,10 +48070,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47531,22 +48087,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47558,7 +48114,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47577,23 +48133,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47602,20 +48158,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47640,8 +48196,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47651,41 +48207,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47700,34 +48256,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47735,7 +48291,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47754,7 +48310,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47768,9 +48324,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47795,8 +48351,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47820,20 +48376,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47848,7 +48404,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47867,50 +48423,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -64035,6 +64591,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "ไม่มีข้อจำกัดการใช้งาน Godot" diff --git a/weblate/tr.po b/weblate/tr.po index 5f400f1506..3d31b6a46a 100644 --- a/weblate/tr.po +++ b/weblate/tr.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-31 12:11+0000\n" "Last-Translator: İlker Civelek \n" "Language-Team: Turkish `_ markup " "language and then compiled into a static website/offline document using the " @@ -333,9 +339,10 @@ msgstr "" "` dersi ile başlar." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" ":ref:`sec-tutorials` bölümü aynı zamanda, herhangi bir sırada, ihtiyaç " "halinde okunabilir. Bu bölüm birçok özellik odaklı eğitimler ve dökümanlar " @@ -351,7 +358,7 @@ msgstr "" #: ../../docs/about/introduction.rst:85 msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1703,7 +1710,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1723,22 +1730,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1746,7 +1751,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1755,18 +1760,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1774,7 +1779,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1785,13 +1790,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1799,21 +1804,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1823,18 +1828,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9328,8 +9333,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10018,11 +10023,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10267,8 +10272,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19079,8 +19084,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19819,7 +19824,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20369,306 +20374,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 -msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 -msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 -msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 -msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 -msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 -msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 -msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 -msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 -msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "Creating the polygons" -msgstr "İçerik Oluşturma" +msgid "2D meshes" +msgstr "C# Sinyaller" -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "İçerik Oluşturma" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -36934,7 +36726,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37337,7 +37129,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37374,7 +37166,769 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "İçerik Oluşturma" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "İçerik Oluşturma" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Animasyon" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Animasyonlar" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "İçerik Oluşturma" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Koşul" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Not etmeniz gereken bazı şeyler:" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Koşul" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43002,7 +43556,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43025,9 +43579,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43044,35 +43599,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43112,7 +43667,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43139,8 +43694,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43153,13 +43708,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43181,20 +43736,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43237,7 +43792,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43300,9 +43855,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43325,11 +43880,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43348,10 +43903,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43402,7 +43957,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43410,7 +43965,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43418,7 +43973,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43435,7 +43990,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43443,7 +43998,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43451,7 +44006,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43459,7 +44014,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43467,7 +44022,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43475,7 +44030,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43483,7 +44038,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43501,7 +44056,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43510,7 +44065,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43520,7 +44075,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43560,7 +44115,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43615,9 +44170,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43637,8 +44192,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43662,7 +44217,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43679,9 +44234,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -43964,7 +44519,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -43985,12 +44540,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44016,9 +44571,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44044,7 +44599,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44054,7 +44609,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44086,8 +44641,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44215,7 +44770,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44571,7 +45126,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44579,7 +45134,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44704,7 +45259,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45201,14 +45756,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45567,7 +46122,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45584,7 +46140,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45674,7 +46230,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45900,14 +46456,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -45982,9 +46538,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -45992,7 +46548,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46094,13 +46650,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46207,9 +46763,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46389,7 +46945,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46412,7 +46968,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46440,8 +46996,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46510,7 +47066,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46523,7 +47079,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46533,18 +47089,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46554,10 +47111,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46583,7 +47140,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46621,7 +47178,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46644,14 +47201,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46674,7 +47231,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46696,7 +47253,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46717,8 +47274,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46726,7 +47283,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46736,10 +47293,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46752,15 +47309,15 @@ msgstr "Koşul" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46773,20 +47330,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46809,75 +47366,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46905,9 +47462,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -46932,8 +47489,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -46946,11 +47503,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -46967,39 +47524,38 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Tür" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47011,185 +47567,185 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Renk" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47205,14 +47761,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47285,7 +47841,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47296,8 +47852,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47334,7 +47890,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47352,25 +47908,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47385,7 +47941,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47396,10 +47952,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47413,22 +47969,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47440,7 +47996,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47459,23 +48015,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47484,20 +48040,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47522,8 +48078,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47533,41 +48089,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47582,34 +48138,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47617,7 +48173,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47636,7 +48192,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47650,9 +48206,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47677,8 +48233,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47702,20 +48258,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47730,7 +48286,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47749,50 +48305,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63907,6 +64463,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "Not etmeniz gereken bazı şeyler:" diff --git a/weblate/uk.po b/weblate/uk.po index 8e3b9a81a4..1f85456d93 100644 --- a/weblate/uk.po +++ b/weblate/uk.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Ukrainian (Godot Engine)\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-09 09:13+0000\n" "Last-Translator: Максим Якимчук \n" "Language-Team: Ukrainian `_ markup " "language and then compiled into a static website/offline document using the " @@ -353,9 +359,10 @@ msgstr "" "користувачів." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "З іншого боку, розділ :ref:`sec-tutorials` може бути прочитаний у міру " "необхідності в будь-якому порядку. Він містить багато навчальних посібників " @@ -372,9 +379,10 @@ msgstr "" "+ або плаґінів редактора." #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1894,7 +1902,7 @@ msgstr "Висновки" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1914,22 +1922,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1937,7 +1943,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1946,18 +1952,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1965,7 +1971,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1976,13 +1982,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1990,21 +1996,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2014,18 +2020,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9528,8 +9534,8 @@ msgstr "Ключове слово" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10217,11 +10223,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10469,8 +10475,8 @@ msgstr "Дані" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "Змінні" @@ -19335,8 +19341,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -20077,7 +20083,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "Налаштування" @@ -20631,308 +20637,93 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "Каркас" +msgid "2D meshes" +msgstr "Нетипові можливості" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Створення простого додатка" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Як розпочати гру" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "Компіляція нашого додатка" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -37244,8 +37035,9 @@ msgid "And much more!" msgstr "…та багато інших можливостей!" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" -msgstr "" +#, fuzzy +msgid "Making of GBot" +msgstr "Внесення змін" #: ../../docs/tutorials/animation/cutout_animation.rst:57 msgid "" @@ -37647,7 +37439,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37684,7 +37476,776 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "Каркас" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Створення простого додатка" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Як розпочати гру" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "Компіляція нашого додатка" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Анімація" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Створення модуля" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Як створити проект" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +#, fuzzy +msgid "Blend tree" +msgstr "Режим змішування" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +#, fuzzy +msgid "OneShot" +msgstr "Один знімок" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "Scale" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "Переклад" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +#, fuzzy +msgid "StateMachine" +msgstr "Пошук" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Тут слід зазначити таке:" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "Rotation" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +#, fuzzy +msgid "Controlling from code" +msgstr "Програмування" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43321,7 +43882,7 @@ msgstr "Змінні середовища" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43344,9 +43905,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43364,35 +43926,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43433,7 +43995,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43460,8 +44022,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43474,13 +44036,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43503,20 +44065,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43560,7 +44122,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43625,9 +44187,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43650,11 +44212,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43673,10 +44235,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43727,7 +44289,8 @@ msgid "**bvec2**" msgstr "**bvec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +#, fuzzy +msgid "Two-component vector of booleans." msgstr "Двокомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43735,7 +44298,8 @@ msgid "**bvec3**" msgstr "**bvec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +#, fuzzy +msgid "Three-component vector of booleans." msgstr "Трикомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43743,7 +44307,8 @@ msgid "**bvec4**" msgstr "**bvec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +#, fuzzy +msgid "Four-component vector of booleans." msgstr "Чотирикомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43760,31 +44325,34 @@ msgid "**ivec2**" msgstr "**ivec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." -msgstr "" +#, fuzzy +msgid "Two-component vector of signed integers." +msgstr "Двокомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 msgid "**ivec3**" msgstr "**ivec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." -msgstr "" +#, fuzzy +msgid "Three-component vector of signed integers." +msgstr "Трикомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 msgid "**ivec4**" msgstr "**ivec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." -msgstr "" +#, fuzzy +msgid "Four-component vector of signed integers." +msgstr "Чотирикомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 msgid "**uint**" msgstr "**uint**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43792,24 +44360,27 @@ msgid "**uvec2**" msgstr "**uvec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." -msgstr "" +#, fuzzy +msgid "Two-component vector of unsigned integers." +msgstr "Двокомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 msgid "**uvec3**" msgstr "**uvec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." -msgstr "" +#, fuzzy +msgid "Three-component vector of unsigned integers." +msgstr "Трикомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 msgid "**uvec4**" msgstr "**uvec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." -msgstr "" +#, fuzzy +msgid "Four-component vector of unsigned integers." +msgstr "Чотирикомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:395 @@ -43826,8 +44397,9 @@ msgid "**vec2**" msgstr "**vec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." -msgstr "" +#, fuzzy +msgid "Two-component vector of floating point values." +msgstr "Двокомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:399 @@ -43835,8 +44407,9 @@ msgid "**vec3**" msgstr "**vec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." -msgstr "" +#, fuzzy +msgid "Three-component vector of floating point values." +msgstr "Трикомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:368 @@ -43845,8 +44418,9 @@ msgid "**vec4**" msgstr "**vec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." -msgstr "" +#, fuzzy +msgid "Four-component vector of floating point values." +msgstr "Чотирикомпонентний вектор із булевих значень." #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 msgid "**mat2**" @@ -43885,7 +44459,7 @@ msgid "**sampler2D**" msgstr "**sampler2D**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43940,9 +44514,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43962,8 +44536,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43987,7 +44561,7 @@ msgstr "Точність" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -44004,9 +44578,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44290,7 +44864,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44311,12 +44885,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44342,9 +44916,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44370,7 +44944,7 @@ msgid "**flat**" msgstr "Нейтральний" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44380,7 +44954,7 @@ msgstr "Згладжування" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44412,8 +44986,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44545,7 +45119,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44902,7 +45476,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44910,7 +45484,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -45035,7 +45609,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45534,14 +46108,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45900,7 +46474,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45917,7 +46492,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -46007,7 +46582,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -46233,14 +46808,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46315,9 +46890,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46325,7 +46900,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46428,13 +47003,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46542,9 +47117,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46724,7 +47299,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46747,7 +47322,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46775,8 +47350,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46847,7 +47422,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46860,7 +47435,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46870,18 +47445,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46891,10 +47467,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46920,7 +47496,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46958,7 +47534,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46981,14 +47557,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -47011,7 +47587,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -47033,7 +47609,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -47054,8 +47630,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -47063,7 +47639,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -47074,10 +47650,10 @@ msgstr "``x.attribute``" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -47090,15 +47666,15 @@ msgstr "Умова" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -47111,20 +47687,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -47147,76 +47723,76 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "Змінна" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 #, fuzzy msgid "vec4" msgstr "**vec4**" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -47245,9 +47821,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 #, fuzzy msgid "vec2" msgstr "**vec2**" @@ -47273,8 +47849,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 #, fuzzy msgid "Coordinates" msgstr "Координата X" @@ -47288,11 +47864,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47309,40 +47885,39 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 #, fuzzy msgid "Types" msgstr "Тип" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 #, fuzzy msgid "mainImage" msgstr "Імпортування зображень" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47354,191 +47929,191 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 #, fuzzy msgid "fragColor" msgstr "Колір" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 #, fuzzy msgid "iResolution" msgstr "Викривлення" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 #, fuzzy msgid "vec3" msgstr "**vec3**" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 #, fuzzy msgid "iChannelTime[4]" msgstr "Канали" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 #, fuzzy msgid "iChanneli" msgstr "Канали" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 #, fuzzy msgid "Sampler2D" msgstr "**sampler2D**" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 #, fuzzy msgid "u_resolution" msgstr "реляційні" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47554,14 +48129,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47634,7 +48209,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47645,8 +48220,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47683,7 +48258,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47701,25 +48276,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47734,7 +48309,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47745,10 +48320,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47762,22 +48337,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47789,7 +48364,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47808,23 +48383,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47833,20 +48408,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47871,8 +48446,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47882,41 +48457,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47931,34 +48506,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47966,7 +48541,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47986,7 +48561,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -48000,9 +48575,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -48027,8 +48602,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -48052,20 +48627,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -48080,7 +48655,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -48100,50 +48675,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -64370,6 +64945,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #~ msgid "TODO." #~ msgstr "ЩЕ НЕ НАПИСАНО." diff --git a/weblate/vi.po b/weblate/vi.po index 7cba0fe646..a85f15748f 100644 --- a/weblate/vi.po +++ b/weblate/vi.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-10-05 02:39+0000\n" "Last-Translator: 01lifeleft <01lifeleft@gmail.com>\n" "Language-Team: Vietnamese `_ markup " "language and then compiled into a static website/offline document using the " @@ -367,9 +371,10 @@ msgstr "" "hướng dẫn mà nên là điểm xuất phát cho tất cả người dùng mới." #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "Mặt khác, phần :ref:`sec-tutorials` có thể được đọc khi nào cần, theo bất kỳ " "thứ tự nào. Nó chứa nhiều bài hướng dẫn và tài liệu cụ thể." @@ -389,7 +394,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1884,7 +1889,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1904,22 +1909,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1927,7 +1930,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1936,18 +1939,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1955,7 +1958,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1966,13 +1969,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1980,21 +1983,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2004,18 +2007,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9499,8 +9502,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10185,11 +10188,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10434,8 +10437,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19229,8 +19232,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19968,7 +19971,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20518,306 +20521,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "Tạo nội dung" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "Tạo nội dung" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -37074,7 +36863,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37477,7 +37266,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37514,7 +37303,766 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "Tạo nội dung" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "Tạo nội dung" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "Tạo nội dung" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "Tạo nội dung" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "Tạo nội dung" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +msgid "There are many types of transitions:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43142,7 +43690,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43165,9 +43713,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43184,35 +43733,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43252,7 +43801,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43279,8 +43828,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43293,13 +43842,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43321,20 +43870,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43377,7 +43926,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43440,9 +43989,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43465,11 +44014,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43488,10 +44037,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43542,7 +44091,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43550,7 +44099,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43558,7 +44107,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43575,7 +44124,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43583,7 +44132,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43591,7 +44140,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43599,7 +44148,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43607,7 +44156,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43615,7 +44164,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43623,7 +44172,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43641,7 +44190,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43650,7 +44199,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43660,7 +44209,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43700,7 +44249,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43755,9 +44304,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43777,8 +44326,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43802,7 +44351,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43819,9 +44368,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44104,7 +44653,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44125,12 +44674,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44156,9 +44705,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44184,7 +44733,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44194,7 +44743,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44226,8 +44775,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44353,7 +44902,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44709,7 +45258,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44717,7 +45266,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44842,7 +45391,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45339,14 +45888,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45705,7 +46254,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45722,7 +46272,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45812,7 +46362,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -46037,14 +46587,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46119,9 +46669,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46129,7 +46679,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46231,13 +46781,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46343,9 +46893,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46525,7 +47075,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46548,7 +47098,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46576,8 +47126,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46646,7 +47196,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46659,7 +47209,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46669,18 +47219,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46690,10 +47241,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46719,7 +47270,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46757,7 +47308,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46780,14 +47331,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46810,7 +47361,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46832,7 +47383,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46853,8 +47404,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46862,7 +47413,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46872,10 +47423,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46887,15 +47438,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46908,20 +47459,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46944,75 +47495,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -47040,9 +47591,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -47067,8 +47618,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47081,11 +47632,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47102,38 +47653,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47145,184 +47695,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47338,14 +47888,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47418,7 +47968,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47429,8 +47979,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47467,7 +48017,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47485,25 +48035,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47518,7 +48068,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47529,10 +48079,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47546,22 +48096,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47573,7 +48123,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47592,23 +48142,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47617,20 +48167,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47655,8 +48205,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47666,41 +48216,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47715,34 +48265,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47750,7 +48300,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47769,7 +48319,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47783,9 +48333,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47810,8 +48360,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47835,20 +48385,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47863,7 +48413,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47882,50 +48432,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -64046,6 +64596,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "Mac OS X" #~ msgstr "Mac OS X" diff --git a/weblate/zh_CN.po b/weblate/zh_CN.po index 2e22eb66aa..3be0deaf8a 100644 --- a/weblate/zh_CN.po +++ b/weblate/zh_CN.po @@ -54,7 +54,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2018-12-31 12:10+0000\n" "Last-Translator: tangdou1 <1093505442@qq.com>\n" "Language-Team: Chinese (Simplified) `_ markup " "language and then compiled into a static website/offline document using the " @@ -373,9 +379,10 @@ msgstr "" "程开始。这个教程是所有新用户的学习起点。" #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" "另外, :ref:`sec-tutorials` 部分则可以根据您的需要以任意顺序去查阅。它包含了" "很多功能特性的教程和文档。" @@ -390,9 +397,10 @@ msgstr "" "擎,开发C++组件和编辑器插件等信息。" #: ../../docs/about/introduction.rst:85 +#, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1968,10 +1976,11 @@ msgid "Conclusion" msgstr "总结" #: ../../docs/getting_started/step_by_step/instancing.rst:114 +#, fuzzy msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" "当您想创建同一对象的多个副本时,实例化会非常有用。您也可以使用代码创建实例(请" "参阅 :ref:`doc_scripting_continued`)。" @@ -1993,24 +2002,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "细分场景并使其更简单地管理的能力。" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -"您可能从Unity中了解到,这是一个比prefabs更灵活的替代方案(而且更强大,因为实例" -"可以嵌套)。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "一种方式来设计更复杂的游戏流程甚至是UI(UI元素在Godot中也是节点)。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "设计语言" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -2020,7 +2025,7 @@ msgstr "" "但实例场景带来的最大优势在于它可以作为一种优秀的设计语言。这也是Godot区别于其" "他游戏引擎的主要因素。Godot引擎就是围绕着这个概念从头设计的。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -2032,11 +2037,11 @@ msgstr "" "式)或者实体关系图(E-R图)抛开,并且开始以一种自然的方式思考游戏。开始想象游戏" "中的所有可见元素,那些能够不只被程序员,而是能被任何人命名的东西。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "比如说,想象一下有一个简单的射击游戏:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " @@ -2045,7 +2050,7 @@ msgstr "" "对于几乎任何类型的游戏,想出这样的图都很容易。只需要写下游戏中可以看到的部" "分,然后加上箭头来表示它们的所属关系。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -2055,7 +2060,7 @@ msgstr "" "一旦形成了这样的图,制作一个游戏就可以是为每个图中的节点创建一个场景。然后使" "用其实例(或通过代码,或通过编辑器)来表达所属关系。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -2070,13 +2075,13 @@ msgstr "" "身。因为大多数游戏组件直接映射到场景,所以使用基于场景实例化的设计意味着需要" "很少的其他架构代码。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "我们来看看另一个更复杂的开放世界类游戏的示例,它有很多资源和嵌套元素:" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -2086,7 +2091,7 @@ msgstr "" "看一看房间(Room)元素。我们从这开始。我们制作几个不同的房间场景,里面有不同的" "家具(和场景)布置。然后我们做一个房屋(House)场景,用这些房间来填充内部。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " @@ -2095,7 +2100,7 @@ msgstr "" "然后,我们可以制作一个城堡(Citadel)场景,有许多实例化的房屋在里面。然后我们可" "以在世界地图地形(Terrain)上工作了,将城堡添加进来。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " @@ -2104,7 +2109,7 @@ msgstr "" "然后,我们可以创建代表卫兵(和其它NPC)的场景,并将它们添加到城堡中。因此,它们" "会间接地被加入到整个游戏世界。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -2118,11 +2123,11 @@ msgstr "" "涉及2D或3D美术工作者、关卡设计师、游戏设计师、动画师,他们都可以这个编辑器界" "面工作。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "信息量太大了!" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " @@ -2131,7 +2136,7 @@ msgstr "" "本篇一直涉及到进阶的信息。然而本教程最重要的是让您领悟到实际项目中如何使用场" "景和实例。" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -11281,8 +11286,8 @@ msgstr "关键字" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -11977,11 +11982,11 @@ msgstr "整数数据类型只能包含整数(包括负数和正数)。" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "float" @@ -12258,8 +12263,8 @@ msgstr "数据" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "变量" @@ -22367,8 +22372,8 @@ msgstr "通过以下函数可以实现每个转换:" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -23237,7 +23242,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "设置" @@ -23944,309 +23949,95 @@ msgstr "" "Godot为什么提供如此多灵活性的原因。 请记住,较高的 ``filter`` 设置会导致阴影" "的计算成本更高。" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 +#: ../../docs/tutorials/2d/2d_meshes.rst:4 #, fuzzy -msgid "2D skeletons" -msgstr "骨架" +msgid "2D meshes" +msgstr "网格" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 -msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 -msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 -msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 -msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 -msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 #, fuzzy -msgid "Creating the polygons" -msgstr "创建一个插件" +msgid "Optimizing pixels drawn" +msgstr "优化大小的构建" -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 #, fuzzy -msgid "Creating the skeleton" -msgstr "完成骨架" +msgid "Converting Sprites to 2D meshes" +msgstr "将键转换为文本" -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -#, fuzzy -msgid "Deforming the polygons" -msgstr "试试这个插件" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -#, fuzzy -msgid "Internal vertices" -msgstr "内部资源" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -44372,7 +44163,8 @@ msgid "And much more!" msgstr "以及更多!" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +#, fuzzy +msgid "Making of GBot" msgstr "制作GBot!" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -44833,7 +44625,8 @@ msgstr "" "键帧,直到链基。 这使得动画四肢的任务变得更加简单。" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +#, fuzzy +msgid "Moving sprites above and behind others" msgstr "移动精灵在其他物体之上和之后。" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -44876,7 +44669,778 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +#, fuzzy +msgid "2D skeletons" +msgstr "骨架" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "创建一个插件" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "完成骨架" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +#, fuzzy +msgid "Deforming the polygons" +msgstr "试试这个插件" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +#, fuzzy +msgid "Internal vertices" +msgstr "内部资源" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +#, fuzzy +msgid "AnimationTree" +msgstr "动画" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "创建动画" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "创建主题" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +#, fuzzy +msgid "Blend tree" +msgstr "混合模式" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +#, fuzzy +msgid "Following is a short description of available nodes:" +msgstr "以下是可用效果的简短描述:" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +#, fuzzy +msgid "OneShot" +msgstr "一发" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +#, fuzzy +msgid "TimeScale" +msgstr "规模" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +#, fuzzy +msgid "Transition" +msgstr "平移" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +#, fuzzy +msgid "StateMachine" +msgstr "搜索" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "过渡的类型" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +#, fuzzy +msgid "Root motion" +msgstr "旋转" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +#, fuzzy +msgid "Controlling from code" +msgstr "贡献代码" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -51221,8 +51785,9 @@ msgid "Custom post-processing" msgstr "自定义后期处理" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 +#, fuzzy msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -51252,10 +51817,12 @@ msgstr "" "reading_shaders>` 。" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 +#, fuzzy msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" "在撰写本文时,Godot不支持同时渲染到多个缓冲区。 您的后期处理着色器将无法访问" "法线或其他渲染过程。 您只能访问渲染帧。" @@ -51276,34 +51843,38 @@ msgstr "" "另一个屏幕内显示您的``Viewport`` :ref:`Control ` 节点。" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 +#, fuzzy msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" "使用 ``Viewport`` 渲染可以控制场景的渲染方式,包括帧速率,您可以使用 " "``ViewportContainer`` 在2D场景中渲染3D对象。" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 +#, fuzzy msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" "对于这个演示,我们将使用 :ref:`Node2D ` 和 " "``ViewportContainer`` ,最后是 ``Viewport`` 。 您的“节点”选项卡应如下所示:" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 +#, fuzzy msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" "在“Viewport”里,您可以得到任何您想要的东西。这将包含您的主场景。对于本教程," "我们将使用一个随机框字段:" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 +#, fuzzy msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" @@ -51312,9 +51883,10 @@ msgstr "" "``TEXTURE`` 制服来访问渲染的 ``Viewport`` 。" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 +#, fuzzy msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" "您可以选择不使用 ``ViewportContainer`` ,但如果这样做,您将需要在着色器中创建" @@ -51363,9 +51935,10 @@ msgstr "" "其进行处理。" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 +#, fuzzy msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -51399,9 +51972,10 @@ msgstr "" "地渲染它们。" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 +#, fuzzy msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "除节点结构外,步骤与单遍后处理着色器相同。" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -51415,14 +51989,16 @@ msgstr "" "`ViewportContainers `。 应用着色器的顺序无关紧要:" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 +#, fuzzy msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "使用上面的代码,您应该得到如下所示的全屏模糊效果。" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 +#, fuzzy msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" "有关 ``Viewport`` 节点如何工作的更多信息,请参阅 :ref:`Viewports Tutorial " @@ -51448,20 +52024,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -51512,7 +52088,7 @@ msgstr "\"particles\":用于粒子系统。" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -51586,9 +52162,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -51615,11 +52191,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -51642,10 +52218,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -51698,7 +52274,8 @@ msgid "**bvec2**" msgstr "**bvec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +#, fuzzy +msgid "Two-component vector of booleans." msgstr "布尔双组分向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -51706,7 +52283,8 @@ msgid "**bvec3**" msgstr "**bvec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +#, fuzzy +msgid "Three-component vector of booleans." msgstr "布尔三组分传染媒介。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -51714,7 +52292,8 @@ msgid "**bvec4**" msgstr "**bvec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +#, fuzzy +msgid "Four-component vector of booleans." msgstr "布尔值的四个组分向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -51731,7 +52310,8 @@ msgid "**ivec2**" msgstr "**ivec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +#, fuzzy +msgid "Two-component vector of signed integers." msgstr "有符号整数的双组分载体。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -51739,7 +52319,8 @@ msgid "**ivec3**" msgstr "**ivec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +#, fuzzy +msgid "Three-component vector of signed integers." msgstr "有符号整数的三个分量向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -51747,7 +52328,8 @@ msgid "**ivec4**" msgstr "**ivec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +#, fuzzy +msgid "Four-component vector of signed integers." msgstr "有符号整数的四个分量向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -51755,7 +52337,8 @@ msgid "**uint**" msgstr "**uint**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +#, fuzzy +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "无符号标量整型,不能包含负数。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -51763,7 +52346,8 @@ msgid "**uvec2**" msgstr "**uvec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +#, fuzzy +msgid "Two-component vector of unsigned integers." msgstr "无符号整数的两个分量向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -51771,7 +52355,8 @@ msgid "**uvec3**" msgstr "**uvec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +#, fuzzy +msgid "Three-component vector of unsigned integers." msgstr "无符号整数的三个分量向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -51779,7 +52364,8 @@ msgid "**uvec4**" msgstr "**uvec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +#, fuzzy +msgid "Four-component vector of unsigned integers." msgstr "无符号整数的四个分量向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -51797,7 +52383,8 @@ msgid "**vec2**" msgstr "**vec2**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +#, fuzzy +msgid "Two-component vector of floating point values." msgstr "浮点值的双分量向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -51806,7 +52393,8 @@ msgid "**vec3**" msgstr "**vec3**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +#, fuzzy +msgid "Three-component vector of floating point values." msgstr "浮点值的三分量向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -51816,7 +52404,8 @@ msgid "**vec4**" msgstr "**vec4**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +#, fuzzy +msgid "Four-component vector of floating point values." msgstr "浮点值的四分量向量。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -51856,7 +52445,8 @@ msgid "**sampler2D**" msgstr "**sampler2D**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +#, fuzzy +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "采样器类型,用于绑定2D纹理,读取为float。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -51917,9 +52507,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 #, fuzzy msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" "对于矩阵,使用m [row] [column]索引语法来访问每个标量,或使用m [idx]来访问逐行" "索引。 例如,要访问mat4中对象的y位置,必须使用m [3] [1]语法。" @@ -51945,8 +52535,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 #, fuzzy msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -51975,8 +52565,9 @@ msgid "Precision" msgstr "精确" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 +#, fuzzy msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "可以将精度修饰符添加到数据类型,将它们用于制服,变量,参数和变换:" @@ -51993,13 +52584,14 @@ msgstr "" "要。" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:173 +#, fuzzy msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" "请记住,一些体系结构(主要是移动端)从中获益良多,但也受到限制(精度之间的转换是" "有代价的)。请阅读目标体系结构的相关文档以了解更多信息。事实上,移动驱动程序是" @@ -52285,10 +52877,11 @@ msgid "Godot Shading language supports the most common types of flow control:" msgstr "Godot 着色器语言支持最常见的控制流类型:" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:236 +#, fuzzy msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" "请记住,在现代GPU中,无限循环可以存在,并且可以冻结应用程序(包括编辑器)。" "Godot不能保护您,所以小心不要犯这个错误!" @@ -52314,12 +52907,13 @@ msgstr "可以在Godot着色器中定义任何函数。它们的语法如下:" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +#, fuzzy +msgid "Function arguments can have special qualifiers:" msgstr "函数的参数可以有特殊修饰符:" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -52346,9 +52940,9 @@ msgstr "Varyings" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 #, fuzzy msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" "要将数据从顶点发送到片段着色器,请使用* varyings *。 它们被设置为 *顶点处理器" "* 中的每个原始顶点,并且当到达片段处理器中的每个像素时,该值被内插(并且透视校" @@ -52379,7 +52973,8 @@ msgid "**flat**" msgstr "**flat**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +#, fuzzy +msgid "The value is not interpolated." msgstr "该值未插值" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -52387,9 +52982,10 @@ msgid "**smooth**" msgstr "**smooth**" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 +#, fuzzy msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "该值以透视正确的方式进行插值。 这是默认值" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -52425,8 +53021,8 @@ msgstr "" #, fuzzy msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" "除* void *之外的任何类型都可以是统一的。 此外,Godot提供可选的着色器提示,以" "使编译器了解统一使用的内容。" @@ -52561,7 +53157,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" "由于Godot 3D引擎呈现在线性颜色空间中,因此需要理解的是,作为颜色提供的纹理(即" "反照率)需要指定为正确的SRGB->线性转换。" @@ -52924,7 +53520,8 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "vec_type **step** ( vec_type a, vec_type b )" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +#, fuzzy +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -52932,7 +53529,8 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "vec_type **step** ( float a, vec_type b )" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +#, fuzzy +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "\\` b[i] < a ? 0.0 : 1.0 \\`" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -53057,7 +53655,8 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +#, fuzzy +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "如果dot(Nref,I)<0则返回N,否则返回-N" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -53571,15 +54170,16 @@ msgstr "" "成:" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 +#, fuzzy msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "如果不修改,其他内置函数(如UV,UV2和COLOR)也会传递给片段函数。" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -53952,8 +54552,10 @@ msgid "out float **ALPHA**" msgstr "out float **ALPHA**" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 +#, fuzzy msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "Alpha(0..1),如果写入材质将转到透明管道。" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -53969,8 +54571,9 @@ msgid "out float **SPECULAR**" msgstr "out float **SPECULAR**" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 +#, fuzzy msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "镜面。 默认为0.5,除非您想要更改IOR,否则最好不要修改。" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -54063,7 +54666,7 @@ msgstr "out float **AO_LIGHT_AFFECT**" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 #, fuzzy -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "AO对灯光的影响程度(0..1。默认为0,无)。" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -54304,16 +54907,17 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 #, fuzzy msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" "可以使用以下代码完全禁用内置模型视图变换(投影仍将在稍后进行),因此可以手动完" "成:" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 +#, fuzzy msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "如果不修改,其他内置函数(如UV和COLOR)也会传递给片段函数。" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -54394,9 +54998,9 @@ msgstr "点绘图的点大小。" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -54404,7 +55008,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -54515,13 +55119,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -54639,9 +55243,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -54834,7 +55438,8 @@ msgid "Create complex texture blendings." msgstr "创建复杂的纹理混合。" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +#, fuzzy +msgid "Create animated materials, or materials that change over time." msgstr "创建随时间变化的动画材质或材质。" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -54856,8 +55461,9 @@ msgid "" msgstr "创建自定义粒子代码,响应烘焙动画或强制字段。" #: ../../docs/tutorials/shading/shader_materials.rst:26 +#, fuzzy msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -54888,10 +55494,11 @@ msgid "Converting to ShaderMaterial" msgstr "转换为ShaderMaterial" #: ../../docs/tutorials/shading/shader_materials.rst:47 +#, fuzzy msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" "可以将SpatialMaterial,CanvasItemMaterial和ParticlesMaterial转换为" "ShaderMaterial。 要执行此操作,请转到材质属性并启用转换选项。" @@ -54967,8 +55574,9 @@ msgid "Download the source code" msgstr "下载源代码" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 +#, fuzzy msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" "下载到着色器项目: :download:`2d_water_shader.zip `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" "您会在 `this GitHub repository ` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -55129,18 +55744,20 @@ msgid "" msgstr "所以,为了更清楚,这里是backbuffer复制逻辑在Godot中的工作原理:" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 +#, fuzzy msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" "如果节点使用SCREEN_TEXTURE,则在绘制该节点之前将整个屏幕复制到后台缓冲区。 这" "仅在第一次发生,后续节点不会触发此操作。" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 +#, fuzzy msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -55168,9 +55785,10 @@ msgid "DEPTH_TEXTURE" msgstr "DEPTH_TEXTURE" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 +#, fuzzy msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" "对于3D着色器,还可以访问屏幕深度缓冲区。 为此,使用内置的DEPTH_TEXTURE。 该纹" @@ -55196,8 +55814,9 @@ msgstr "" "源(如Shadertoy和The Book of Shaders)迁移到Godot着色器的实用建议。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 +#, fuzzy msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" "有关Godot着色语言的详细信息,请参阅 :ref:`Shading Language " @@ -55222,9 +55841,10 @@ msgid "Shader programs" msgstr "着色器程序" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 +#, fuzzy msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -55233,9 +55853,10 @@ msgstr "" "``fragment`` 函数。 如果您只选择写一个,Godot将提供另一个。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 +#, fuzzy msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" "Godot允许通过在一个文件中定义片段和顶点着色器来共享统一变量和函数。 在GLSL" @@ -55246,11 +55867,12 @@ msgid "Vertex attributes" msgstr "顶点属性" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 +#, fuzzy msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" "在GLSL中,您可以使用属性传递每顶点信息。 在GLSL中,您可以根据需要灵活地传" @@ -55264,20 +55886,22 @@ msgid "gl_Position" msgstr "gl_Position" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 +#, fuzzy msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" "``gl_Position`` 接收顶点着色器中指定的顶点的最终位置。 它由用户在剪辑空间中指" "定。 通常在GLSL中,使用名为“position”的顶点属性传入模型空间顶点位置,并手动处" "理从模型空间到剪辑空间的转换。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 +#, fuzzy msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -55294,9 +55918,10 @@ msgstr "" "使最终变换从视图空间无效到剪辑空间。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 +#, fuzzy msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." @@ -55306,13 +55931,14 @@ msgstr "" "中定义为 ``out`` ,在片段着色器内定义为 ``in`` 。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "主要" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 +#, fuzzy msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -55335,14 +55961,15 @@ msgid "Macros" msgstr "宏" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:79 +#, fuzzy msgid "" "In keeping with its similarity to C, GLSL lets you use macros. Commonly " "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" "为了与C的相似性,GLSL允许您使用宏。 通常 ``#define`` 用于定义常量或小函数。 " "没有直接的方法将定义翻译成Godot的着色语言。 如果它是一个已定义的函数,则用函" @@ -55350,70 +55977,72 @@ msgstr "" "有等价物,因为它们在编译的预处理阶段运行。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 +#, fuzzy msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" "GLSL有许多内置的硬编码变量。 这些变量不是制服,因此它们不能从主程序中编辑。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "变量" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "等价物" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "gl_FragColor" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "out vec4" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "COLOR" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "每个像素的输出颜色。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "gl_FragCoord" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "vec4" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "FRAGCOORD" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +#, fuzzy +msgid "For full screen quads. For smaller quads, use UV." msgstr "适用于全屏四边形。 对于较小的四边形使用UV。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -55441,9 +56070,9 @@ msgid "gl_PointCoord" msgstr "gl_PointCoord" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "vec2" @@ -55468,8 +56097,8 @@ msgid "True if front face of primitive." msgstr "如果原始的正面,则为真。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "坐标" @@ -55483,12 +56112,13 @@ msgstr "" "果在Godot中使用UV,则y坐标将颠倒翻转。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 +#, fuzzy msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" "在GLSL中,您可以使用 ``precision`` 关键字在着色器顶部定义给定类型(float或int)" @@ -55510,37 +56140,39 @@ msgstr "" "创建`纯魔术`_ 。" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 +#, fuzzy msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" "Shadertoy不会让用户完全控制着色器。 它只允许用户编写片段着色器。 它处理所有输" "入和制服,只允许用户编写片段着色器。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "类型" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 +#, fuzzy msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" "Shadertoy使用webgl规范,因此它运行略有不同的GLSL版本。 但是,它仍然具有常规类" "型,包括`常量`_和宏。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "mainImage" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 +#, fuzzy msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." @@ -55550,7 +56182,7 @@ msgstr "" "这些参数在Godot中自动处理,因此您无需自己将它们作为参数包含在内。 当移植到" "Godot时, ``mainImage`` 函数中的任何内容都应该被复制到 ``fragment`` 函数中。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -55567,126 +56199,127 @@ msgstr "" "为“Provide with Uniform”的变量,用户有责任自己创建该统一。 该描述为读者提供了" "关于他们可以作为替代品传递什么的提示。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "fragColor" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "fragColor" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "iResolution" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "vec3" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "1.0 / SCREEN_PIXEL_SIZE" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "也可以手动传递。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "iTime" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "TIME" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "着色器启动后的时间。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "iTimeDelta" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "提供统一" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "渲染前一帧的时间。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "iFrame" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "帧号。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "iChannelTime[4]" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "帧号。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "iMouse" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "鼠标在像素坐标中的位置。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "iDate" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "当前日期,以秒为单位表示。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "iChannelResolution[4]" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "1.0 / TEXTURE_PIXEL_SIZE" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "特殊纹理的分辨率。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "iChanneli" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "Sampler2D" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "TEXTURE" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +#, fuzzy +msgid "Godot provides only one built-in; user can make more." msgstr "Godot只提供一个内置,用户可以做更多。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." @@ -55694,15 +56327,16 @@ msgstr "" "``fragCoord``的行为与``gl_FragCoord``相同 :ref:`GLSL ` 和" "Godot中的 ``FRAGCOORD`` 。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "着色之书" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 +#, fuzzy msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" @@ -55710,7 +56344,7 @@ msgstr "" "段着色器的访问,供用户与之交互。 用户只能编写片段着色器代码,其中包含一组传入" "的制服,并且无法添加其他制服。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " @@ -55719,16 +56353,17 @@ msgstr "" "有关将着色器移植到各种框架的进一步帮助,The Book of Shaders在各种框架中运行着" "色器时提供了一个“page `_ 。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 +#, fuzzy msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" "The Book of Shaders使用webgl规范,因此它运行的GLSL略有不同。 但是,它仍然具有" "常规类型,包括`常量`_和宏。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " @@ -55737,25 +56372,25 @@ msgstr "" "Book of Shaders片段着色器的入口点是 ``main`` ,就像在GLSL中一样。 使用着色器 " "``main`` 函数编写的所有内容都应该复制到Godot的 ``fragment`` 函数中。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "着色书比Shadertoy更接近普通GLSL。 它也比Shadertoy实施更少的制服。" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "u_resolution" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "u_time" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "u_mouse" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -55766,13 +56401,14 @@ msgid "Vertex displacement with shaders" msgstr "使用着色器的顶点偏移" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:9 +#, fuzzy msgid "" "This tutorial will teach you how to displace the vertices of a :ref:`Plane " "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" @@ -55783,7 +56419,8 @@ msgstr "" "光照的微型地形。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +#, fuzzy +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "通过阅读本教程,您应该基本了解:" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -55868,8 +56505,9 @@ msgid "Now set the ``Subdivide Width`` and ``Subdivide Height`` to ``32``." msgstr "现在将``Subdivide Width``和``Subdivide Height``设置为``32``。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 +#, fuzzy msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -55881,9 +56519,10 @@ msgid "Shader magic" msgstr "着色器魔术" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 +#, fuzzy msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" "现在我们有了一个 :ref:`Plane Mesh ` 来绘制让我们设置将变" "形的材质 :ref:`Mesh `。" @@ -55929,9 +56568,10 @@ msgstr "" "运行灯光着色器。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 +#, fuzzy msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" "这应该删除错误,您的 :ref:`Mesh ` 应该变成白色。 如果您要" @@ -55953,31 +56593,35 @@ msgid "We define the vertex shader like so:" msgstr "我们像这样定义顶点着色器:" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 +#, fuzzy msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" "在 ``vertex`` 函数中没有任何内容,Godot将使用其默认的顶点着色器。 我们可以通" "过添加一行来轻松开始进行更改:" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +#, fuzzy +msgid "Adding this line, you should get an image like the one below." msgstr "添加此行您应该得到如下图像。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 +#, fuzzy msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" "好吧,让我们打开它。 ``VERTEX``的``y``值正在增加。 我们传递 ``VERTEX`` 的" "``x``和``z``组件作为 ``cos`` 和``sin``的参数,这给了我们一个横跨``x的波浪外" "观 ``和 ``z`` 轴。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 +#, fuzzy msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -55996,8 +56640,9 @@ msgstr "" "小。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 +#, fuzzy msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" "现在看起来更加丘陵了。 但是 ``cos`` 和``sin``很无聊。 让我们进入更有趣的事" @@ -56008,12 +56653,13 @@ msgid "Noise" msgstr "噪声" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 +#, fuzzy msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" "噪声是一种非常流行的程序生成工具。 可以认为它类似于余弦函数,除了噪音外,每个" "山都有不同的高度。 本教程不需要了解噪声。 简单地复制和粘贴下面的代码没有任何" @@ -56026,30 +56672,33 @@ msgid "" msgstr "我们用来生成噪波的第一个函数是“hash”函数。它给出了每个山顶的随机高度。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:167 +#, fuzzy msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" "您将在整个互联网上找到类似的功能。 它被巧妙地称为“单线程哈希函数”。 它适用于" "简单的噪音,但也有许多更好的替代方案。 对于本教程,它将正常工作。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 +#, fuzzy msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" "接下来我们定义“noise”函数。它平滑地插入到随机高度之间。同样,如果这段代码看起" "来很吓人,不要担心,只需复制粘贴并且跟着教程继续学习。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 +#, fuzzy msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" "最后,为了添加细节,我们使用分形布朗运动或FBM来组合连续的噪声层。 除了FBM噪声" @@ -56063,8 +56712,9 @@ msgid "" msgstr "我们现在可以使用这个噪声函数代替上一节中的 ``cos`` 和``sin``。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 +#, fuzzy msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" "有了噪音功能,我们已经有了一些看起来很酷的东西。 有很多细节,有点像丘陵或山" @@ -56087,21 +56737,23 @@ msgstr "" "ref:`Mesh ` 的 ``ALBEDO`` 颜色。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 +#, fuzzy msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" "现在让我们看一下 :ref:`Mesh ` 用常规着色器而不是线框。 将" "视区设置回“显示正常”。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 +#, fuzzy msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" ":ref:`Mesh ` 看起来是完全白色的,因为片段着色器将每个像素" "着色为白色,但如果每个像素都是白色,我们就会丢失详细信息 :ref:`Mesh " @@ -56110,8 +56762,9 @@ msgstr "" "的“ALBEDO”设置为计算的“COLOR”变量。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 +#, fuzzy msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -56119,26 +56772,29 @@ msgstr "" "显示 :ref:`Mesh ` 的线框。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:252 +#, fuzzy msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" "统一变量允许您将数据从游戏传递到着色器。 它们对于控制着色器效果非常有用。 制" "服几乎可以是着色器中可以使用的任何数据类型。 要使用制服,请使用关键字 " "``uniform`` 在 :ref:`Shader ` 中声明它。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +#, fuzzy +msgid "Let's make a uniform that changes the height of the terrain." msgstr "让我们制作一个改变地形高度的制服。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 +#, fuzzy msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" "Godot允许您用值初始化一个制服,这里 ``height_scale`` 设置为 ``0.5`` 。 您可以" @@ -56171,9 +56827,10 @@ msgid "And here it is with ``height_scale`` set to ``0.2``:" msgstr "在这里, ``height_scale`` 设置为``0.2``:" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 +#, fuzzy msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" "使用制服我们甚至可以改变每帧的值来设置地形的高度。 结合 :ref:`Tweens " @@ -56184,35 +56841,38 @@ msgid "Interacting with light" msgstr "与光交互" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 +#, fuzzy msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" "作为本教程的最后一部分,我们尝试设置地形以与光交互。 首先,我们将向场景中添" "加 :ref:`OmniLight ` 。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 +#, fuzzy msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" "您应该注意到没有任何变化,这是因为我们在本教程的开头将 ``render_mode`` 设置" "为 ``unshaded`` ,让我们删除它。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 +#, fuzzy msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" "它现在看起来稍微好一点,您可以看到影响地形的光线,并且它因天空而变成了蓝色。 " @@ -56225,13 +56885,14 @@ msgstr "" "难的灯光计算。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 +#, fuzzy msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" "为了从噪声中计算法线,我们将使用一种称为“中心差异”的技术。 这很常用,特别是在" "像shadertoy这样的地方,用于计算着色器中的法线。 我们要做的是计算“x”和“z”方向" @@ -56251,16 +56912,18 @@ msgstr "" "的数字将增加法线的细节水平。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +#, fuzzy +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "使用“NORMAL”计算地形现在看起来像:" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 +#, fuzzy msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" "这看起来仍然不是我们想要的。 这里的问题是噪声变化比顶点变化得快。 因此,当我" @@ -56269,22 +56932,25 @@ msgstr "" "用 :ref:`Mesh `, ``subdivision`` 设置为 ``100`` 。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 +#, fuzzy msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "现在我们可以拖动灯光,灯光会自动更新。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 +#, fuzzy msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" "如果您缩小相机,您可以看到 :ref:`Mesh ` 现在看起来像一个" "小地形。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 +#, fuzzy msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -56294,8 +56960,9 @@ msgstr "" "`,并尝试使用自己的函数来计算 ``height`` 。" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 +#, fuzzy msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" "有关如何在Godot中使用着色器的更多信息,请查看 :ref:`doc_shading_language`页" @@ -56318,8 +56985,9 @@ msgstr "" "post-processing tutorial ` 中介绍的方法。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 +#, fuzzy msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -56336,10 +57004,11 @@ msgid "Full screen quad" msgstr "全屏四核" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 +#, fuzzy msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" "在 :ref:`自定义后处理教程` 中,我们介绍了如何使用" "Viewport进行自定义后处理效果。使用Viewport有两个主要缺点:" @@ -56367,11 +57036,12 @@ msgstr "" "理效果,包括在编辑器中。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:36 +#, fuzzy msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -56397,13 +57067,14 @@ msgstr "" "从模型到视图空间的变换到幕后的剪辑空间,因此我们需要消除Godot变换的效果。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:50 +#, fuzzy msgid "" "First, set ``render_mode`` to ``skip_vertex_transform``, which removes the " "transformation from model space to view space. Godot handles the " "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" "首先,将 ``render_mode`` 设置为 ``skip_vertex_transform`` ,它将从模型空间转" @@ -56413,15 +57084,16 @@ msgstr "" "进行Nullify。在Godot中,这是通过将`1`传递给 ``mat4`` 来完成的。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 +#, fuzzy msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" "即使使用此顶点着色器,四边形也会不断消失。这是由于在CPU上完成的截头剔除。 " "Frustum剔除使用相机矩阵和网格物体的AABB来确定在将网格传递到GPU之前网格是否可" @@ -56440,8 +57112,9 @@ msgid "Make the AABB as large as possible so it can always be seen" msgstr "使AABB尽可能大,以便始终可以看到" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 +#, fuzzy msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -56461,26 +57134,28 @@ msgstr "" "理查找。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:90 +#, fuzzy msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" "与访问屏幕纹理类似,只有在从当前视区读取时才能访问深度纹理。无法从已渲染的另" "一个视区访问深度纹理。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 +#, fuzzy msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" "``DEPTH_TEXTURE`` 返回的值介于 ``0`` 和 ``1`` 之间,并且是非线性的。当直接" "从“DEPTH_TEXTURE”显示深度时,除非它非常接近,否则一切都会看起来几乎是白色的。" @@ -56490,39 +57165,43 @@ msgstr "" "乘以投影矩阵的倒数,在Godot中可以用变量 ``INV_PROJECTION_MATRIX`` 访问它" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 +#, fuzzy msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" "首先获取屏幕空间坐标并将其转换为标准化设备坐标(NDC)。 NDC从“-1”运行到“1”,类" "似于剪辑空间坐标。使用 ``SCREEN_UV`` 为``x``和``y``轴重建NDC,并使用 ``z`` 的" "深度值。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 +#, fuzzy msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" "通过将NDC乘以 ``INV_PROJECTION_MATRIX`` 来将NDC转换为查看空间。回想一下,视图" "空间给出了相对于相机的位置,因此 ``z`` 值将为我们提供到该点的距离。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 +#, fuzzy msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" "因为相机面向负 ``z`` 方向,所以位置将具有负 ``z`` 值。为了获得可用的深度值," "我们必须否定 ``view.z`` 。" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 +#, fuzzy msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" "可以使用以下代码从深度缓冲区构造世界位置。请注意,需要使用 ``CAMERA_MATRIX`` " @@ -75754,6 +76433,19 @@ msgstr "" "`Zeef Godot Engine:由Andre Schmitz撰写的精选资源目录 `_" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + +#~ msgid "" +#~ "A more flexible alternative to prefabs you might know from Unity (and " +#~ "much more powerful given that instances can be nested)." +#~ msgstr "" +#~ "您可能从Unity中了解到,这是一个比prefabs更灵活的替代方案(而且更强大,因为" +#~ "实例可以嵌套)。" + #~ msgid "Release Password: Key password." #~ msgstr "发布密码:密钥密码。" diff --git a/weblate/zh_TW.po b/weblate/zh_TW.po index 831a151cfb..d04a0d201e 100644 --- a/weblate/zh_TW.po +++ b/weblate/zh_TW.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Godot Engine latest\n" "Report-Msgid-Bugs-To: https://github.com/godotengine/godot-docs-l10n\n" -"POT-Creation-Date: 2019-01-09 10:56+0100\n" +"POT-Creation-Date: 2019-01-14 16:05+0100\n" "PO-Revision-Date: 2019-01-04 04:03+0000\n" "Last-Translator: Otis Kao \n" "Language-Team: Chinese (Traditional) `_ markup " "language and then compiled into a static website/offline document using the " @@ -343,9 +347,10 @@ msgstr "" "有新使用者學習的起始點所寫的。" #: ../../docs/about/introduction.rst:80 +#, fuzzy msgid "" -"The :ref:`sec-tutorials` section, on the other hand, can be read as needed, " -"in any order. It contains many feature-specific tutorials and documentations." +"The :ref:`sec-tutorials` section can be read as needed, in any order. It " +"contains feature-specific tutorials and documentation." msgstr "" ":ref:`sec-tutorials` 章節,相對的,需在要用到時再讀即可,沒有先後順序。它包含" "許多特定功能的教學和文件。" @@ -363,7 +368,7 @@ msgstr "" #, fuzzy msgid "" "The :ref:`sec-community` section gives information related to contributing " -"to the engine development and the life of its community, e.g. how to report " +"to engine development and the life of its community, e.g. how to report " "bugs, help with the documentation, etc. It also points to various community " "channels like IRC and Discord and contains a list of recommended third-party " "tutorials outside of this documentation." @@ -1806,7 +1811,7 @@ msgstr "" msgid "" "Instancing can be useful when you want to create many copies of the same " "object. It is also possible to create instances in code by using GDScript, " -"see :ref:`doc_scripting_continued`." +"see :ref:`doc_instancing_continued`." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:4 @@ -1826,22 +1831,20 @@ msgid "The ability to subdivide scenes and make them easier to manage." msgstr "" #: ../../docs/getting_started/step_by_step/instancing_continued.rst:12 -msgid "" -"A more flexible alternative to prefabs you might know from Unity (and much " -"more powerful given that instances can be nested)." +msgid "A tool to manage and edit multiple node instances at once." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:14 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:13 msgid "" "A way to organize and embed complex game flows or even UIs (in Godot, UI " "Elements are nodes, too)." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:18 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:17 msgid "Design language" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:20 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:19 msgid "" "But the greatest strength that comes with instancing scenes is that it works " "as an excellent design language. This is pretty much what distinguishes " @@ -1849,7 +1852,7 @@ msgid "" "ground up around this concept." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:25 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:24 msgid "" "When making games with Godot, the recommended approach is to dismiss most " "common design patterns, such as MVC or Entity-Relationship diagrams, and " @@ -1858,18 +1861,18 @@ msgid "" "programmer, but by anyone." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:31 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:30 msgid "For example, here's how a simple shooter game could be imagined:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:35 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:34 msgid "" "You can come up with a diagram like this for almost any kind of game. Write " "down the parts of the game that you can visualize, and then add arrows to " "represent ownership of one component by another." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:39 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:38 msgid "" "Once you have a diagram like this, the recommended process for making a game " "is to create a scene for each element listed in the diagram. You'll use " @@ -1877,7 +1880,7 @@ msgid "" "relationships." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:43 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:42 msgid "" "A lot of time spent in programming games (or software in general) is on " "designing an architecture and fitting game components to that architecture. " @@ -1888,13 +1891,13 @@ msgid "" "needed." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:49 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:48 msgid "" "Let's take a look at one more, somewhat more complex, example of an open-" "world type game with lots of assets and nested elements:" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:54 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:53 msgid "" "Take a look at the room element. Let's say we started there. We could make a " "couple of different room scenes, with different arrangements of furniture " @@ -1902,21 +1905,21 @@ msgid "" "to make up its interior." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:59 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:58 msgid "" "Then, we could make a citadel scene, which is made out of many instanced " "houses. Then, we could start working on the world map terrain, adding the " "citadel onto it." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:63 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:62 msgid "" "Later, we could create scenes that represent guards (and other NPCs) and add " "them to the citadel as well. As a result, they would be indirectly added to " "the overall game world." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:67 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:66 msgid "" "With Godot, it's easy to iterate on your game like this, as all you need to " "do is create and instance more scenes. Furthermore, the editor UI is " @@ -1926,18 +1929,18 @@ msgid "" "interface." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:74 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:73 msgid "Information overload!" msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:76 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:75 msgid "" "This has been a lot of high level information dropped on you all at once. " "However, the important part of this tutorial was to create an awareness of " "how scenes and instancing are used in real projects." msgstr "" -#: ../../docs/getting_started/step_by_step/instancing_continued.rst:80 +#: ../../docs/getting_started/step_by_step/instancing_continued.rst:79 msgid "" "Everything discussed here will become second nature to you once you start " "making games and putting these concepts into practice. For now, don't worry " @@ -9424,8 +9427,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:30 #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:51 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 #: ../../docs/tutorials/misc/binary_serialization_api.rst:101 @@ -10111,11 +10114,11 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:376 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:100 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 #: ../../docs/tutorials/misc/binary_serialization_api.rst:31 msgid "float" msgstr "" @@ -10360,8 +10363,8 @@ msgstr "" #: ../../docs/getting_started/scripting/gdscript/gdscript_basics.rst:548 #: ../../docs/getting_started/scripting/visual_script/nodes_purposes.rst:131 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:86 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:149 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:213 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:148 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:212 msgid "Variables" msgstr "" @@ -19164,8 +19167,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:21 #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:366 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 #: ../../docs/tutorials/plugins/editor/import_plugins.rst:242 #: ../../docs/tutorials/misc/binary_serialization_api.rst:23 #: ../../docs/tutorials/misc/binary_serialization_api.rst:92 @@ -19908,7 +19911,7 @@ msgstr "" #: ../../docs/tutorials/2d/2d_movement.rst:17 #: ../../docs/tutorials/2d/2d_lights_and_shadows.rst:22 -#: ../../docs/tutorials/2d/2d_skeletons.rst:25 +#: ../../docs/tutorials/animation/2d_skeletons.rst:25 #: ../../docs/development/compiling/introduction_to_the_buildsystem.rst:41 msgid "Setup" msgstr "" @@ -20458,306 +20461,92 @@ msgid "" "``filter`` set the more expensive the shadows will be." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:4 -msgid "2D skeletons" +#: ../../docs/tutorials/2d/2d_meshes.rst:4 +msgid "2D meshes" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:9 +#: ../../docs/tutorials/2d/2d_meshes.rst:9 msgid "" -"When working with 3D, skeletal deforms are common for characters and " -"creatures and most 3D modelling applications support it. For 2D, as this " -"function is not used as often, it's difficult to find mainstream software " -"aimed for this." +"In 3D, meshes are used to display the world. In 2D, they are rare as images " +"are used more often. Godot's 2D engine is a pure two dimensional engine, so " +"it can't really display 3D meshes directly (although it can be done via " +"``Viewport`` and ``ViewportTexture``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:13 +#: ../../docs/tutorials/2d/2d_meshes.rst:13 msgid "" -"One option is to create animations in third-party software such as Spine or " -"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " -"built-in." +"If you are interested in displaying 3D meshes on a 2D viewport, see the :ref:" +"`doc_viewport_as_texture` tutorial." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:16 +#: ../../docs/tutorials/2d/2d_meshes.rst:15 msgid "" -"Why would you want to do skeletal animations directly in Godot? The answer " -"is that there are many advantages to it:" +"2D meshes are meshes that contain two dimensional geometry (Z can be omitted " +"or ignored) instead of 3D. You can experiment creating them yourself using " +"``SurfaceTool`` from code and displaying them in a ``MeshInstance2D`` node." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:18 +#: ../../docs/tutorials/2d/2d_meshes.rst:18 msgid "" -"Better integration with the engine, so less hassle importing and editing " -"from an external tool." +"Currently, the only way to generate a 2D mesh within the editor is by either " +"importing an OBJ file as a mesh, or converting it from a Sprite." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:19 +#: ../../docs/tutorials/2d/2d_meshes.rst:21 +msgid "Optimizing pixels drawn" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:23 msgid "" -"Ability to control particle systems, shaders, sounds, call scripts, colors, " -"transparency, etc. in animations." +"This workflow is useful for optimizing 2D drawing in some situations. When " +"drawing large images with transparency, Godot will draw the whole quad to " +"the screen. The large transparent areas will still be drawn." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:20 +#: ../../docs/tutorials/2d/2d_meshes.rst:25 msgid "" -"The built-in skeletal system in Godot is very efficient and designed for " -"performance." +"This can affect performance, especially on mobile devices, when drawing very " +"large images (generally screen sized), or layering multiple images on top of " +"each other with large transparent areas (for example, when using " +"``ParallaxBackground``)." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:22 -msgid "The following tutorial will, then, explain 2D skeletal deformations." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:27 +#: ../../docs/tutorials/2d/2d_meshes.rst:28 msgid "" -"Before starting, it is advised to go through the :ref:" -"`doc_cutout_animations` tutorial to gain a general understanding of " -"animating within Godot." +"Converting to a mesh will ensure that only the opaque parts will be drawn " +"and the rest will be ignored." msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:30 +#: ../../docs/tutorials/2d/2d_meshes.rst:31 +msgid "Converting Sprites to 2D meshes" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:33 msgid "" -"For this tutorial, we will be using a single image to construct our " -"character. Download it from :download:`gBot_pieces.png ` or save the image below." +"You can take advantage of this optimization by converting a ``Sprite`` to a " +"``MeshInstance2D``. Start with an image that contains large amounts of " +"transparency on the edges, like this tree:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:35 +#: ../../docs/tutorials/2d/2d_meshes.rst:38 +msgid "Put it in a ``Sprite`` and select \"Convert to 2D Mesh\" from the menu:" +msgstr "" + +#: ../../docs/tutorials/2d/2d_meshes.rst:42 msgid "" -"It is also advised to download the final character image :download:" -"`gBot_complete.png ` to have a good reference for " -"putting the different pieces together." +"A dialog will appear, showing a preview of how the 2D mesh will be created:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:41 -#, fuzzy -msgid "Creating the polygons" -msgstr "創建內容" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:43 +#: ../../docs/tutorials/2d/2d_meshes.rst:46 msgid "" -"Create a new scene for your model (if it's going to be an animated " -"character, you may want to use a ``KinematicBody2D``). For ease of use, an " -"empty 2D node is created as a root for the polygons." +"The default values are good enough for many cases, but you can change growth " +"and simplification according to your needs:" msgstr "" -#: ../../docs/tutorials/2d/2d_skeletons.rst:46 +#: ../../docs/tutorials/2d/2d_meshes.rst:50 msgid "" -"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " -"the scene for now, so simply create it like this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:50 -msgid "" -"Select it and assign the texture with the character pieces you have " -"downloaded before:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:54 -msgid "" -"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " -"for the polygon:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:58 -msgid "" -"Head over to the *Points* mode, select the pencil and draw a polygon around " -"the desired piece:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:62 -msgid "" -"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " -"again and replace the old polygon with another one in the new desired piece." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:66 -msgid "Keep doing this until all pieces have been mapped." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:70 -msgid "" -"You will notice that pieces for nodes appear in the same layout as they do " -"in the original texture. This is because (by default) when you draw a " -"polygon, the UV and points are the same." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:73 -msgid "" -"Rearrange the pieces and build the character. This should be pretty quick. " -"There is no need to change pivots, so don't bother making sure rotation " -"pivots for each piece are right; you can leave them be for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:78 -msgid "" -"Ah, the visual order of the pieces is not correct yet, as some are covering " -"wrong pieces. Rearrange the order of the nodes to fix this:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:82 -msgid "" -"And there you go! It was definitely much easier than in the cutout tutorial." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:85 -#, fuzzy -msgid "Creating the skeleton" -msgstr "創建內容" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:87 -msgid "" -"Create a ``Skeleton2D`` node as a child of the root node. This will be the " -"base of our skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:91 -msgid "" -"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " -"(usually skeletons start here). The bone will be pointing to the right, but " -"you can ignore this for now." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:96 -msgid "Keep creating bones in hierarchy and naming them accordingly." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:100 -msgid "" -"At the end of this chain, there will be a *jaw* node. It is, again, very " -"short and pointing to the right. This is normal for bones without children. " -"The length of *tip* bones can be changed with a property in the inspector:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:105 -msgid "" -"In this case, we don't need to rotate the bone (coincidentially the jaw " -"points right in the sprite), but in case you need to, feel free to do it. " -"Again, this is only really needed for tip bones as nodes with children don't " -"usually need a length or a specific rotation." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:108 -msgid "Keep going and build the whole skeleton:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:112 -msgid "" -"You will notice that all bones raise an annoying warning about a missing " -"rest pose. This means that it's time to set one. Go to the *skeleton* node " -"and create a rest pose. This pose is the default one, you can come back to " -"it anytime you want (which is very handy for animating):" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:117 -msgid "" -"The warnings will go away. If you modify the skeleton (add/remove bones) you " -"will need to set the rest pose again." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:120 -msgid "Deforming the polygons" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:122 -msgid "" -"Select the previously created polygons and assign the skeleton node to their " -"``Skeleton`` property. This will ensure that they can eventually by deformed " -"by it." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:126 -msgid "Click the property highlighted above and select the skeleton node:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:130 -msgid "" -"Again, open the UV editor for the polygon and go to the *Bones* section." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:134 -msgid "" -"You will not be able to paint weights yet. For this you need to synchronize " -"the list of bones from the skeleton with the polygon. This step is done " -"manually and only once (unless you modify the skeleton). It ensures that " -"your rigging information is kept in the polygon, even if a skeleton node is " -"accidentally lost or the skeleton modified. Push the \"Sync Bones to Polygon" -"\" button to sync the list." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:140 -msgid "" -"The list of bones will automatically appear. By default, your polygon has no " -"weight assigned to any of them. Select the bones you want to assign weight " -"to and paint them:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:145 -msgid "" -"Points in white have a full weight assigned, while points in black are not " -"influenced by the bone. If the same point is painted white for multiple " -"bones, the influence will be distributed amongst them (so usually there is " -"not that much need to use shades in-between unless you want to polish the " -"bending effect)." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:151 -msgid "" -"After painting the weights, animating the bones (NOT the polygons!) will " -"have the desired effect of modifying and bending the polygons accordingly. " -"As you only need to animate bones in this approach, work becomes much easier!" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:154 -msgid "" -"But it's not all roses. Trying to animate bones that bend the polygon will " -"often yield unexpected results:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:158 -msgid "" -"This happens because Godot generates internal triangles that connect the " -"points when drawing the polygon. They don't always bend the way you would " -"expect. To solve this, you need to set hints in the geometry to clarify how " -"you expect it to deform." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:162 -msgid "Internal vertices" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:164 -msgid "" -"Open the UV menu for each bone again and go to the *Points* section. Add " -"some internal vertices in the regions where you expect the geometry to bend:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:168 -msgid "" -"Now, go to the *Polygon* section and redraw your own polygons with more " -"detail. Imagine that, as your polygons bend, you need to make sure they " -"deform the least possible, so experiment a bit to find the right setup." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:173 -msgid "" -"Once you start drawing, the original polygon will disappear and you will be " -"free to create your own:" -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:177 -msgid "" -"This amount of detail is usually fine, though you may want to have more fine-" -"grained control over where triangles go. Experiment by yourself until you " -"get the results you like." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:179 -msgid "" -"**Note:** Don't forget that your newly added internal vertices also need " -"weight painting! Go to the *Bones* section again to assign them to the right " -"bones." -msgstr "" - -#: ../../docs/tutorials/2d/2d_skeletons.rst:181 -msgid "Once you are all set, you will get much better results:" +"Finally, push the ``Convert 2D Mesh`` button and your Sprite will be " +"replaced:" msgstr "" #: ../../docs/tutorials/2d/custom_drawing_in_2d.rst:4 @@ -37016,7 +36805,7 @@ msgid "And much more!" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:55 -msgid "Making of GBot!" +msgid "Making of GBot" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:57 @@ -37419,7 +37208,7 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:343 -msgid "Moving sprites above and behind others." +msgid "Moving sprites above and behind others" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:345 @@ -37456,7 +37245,766 @@ msgid "" msgstr "" #: ../../docs/tutorials/animation/cutout_animation.rst:370 -msgid "This process is described in a :ref:`separate tutorial <2d_skeletons>`." +msgid "" +"This process is described in a :ref:`separate tutorial `." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:4 +msgid "2D skeletons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:9 +msgid "" +"When working with 3D, skeletal deforms are common for characters and " +"creatures and most 3D modelling applications support it. For 2D, as this " +"function is not used as often, it's difficult to find mainstream software " +"aimed for this." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:13 +msgid "" +"One option is to create animations in third-party software such as Spine or " +"Dragonbones. From Godot 3.1 onwards, though, this functionality is supported " +"built-in." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:16 +msgid "" +"Why would you want to do skeletal animations directly in Godot? The answer " +"is that there are many advantages to it:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:18 +msgid "" +"Better integration with the engine, so less hassle importing and editing " +"from an external tool." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:19 +msgid "" +"Ability to control particle systems, shaders, sounds, call scripts, colors, " +"transparency, etc. in animations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:20 +msgid "" +"The built-in skeletal system in Godot is very efficient and designed for " +"performance." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:22 +msgid "The following tutorial will, then, explain 2D skeletal deformations." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:27 +msgid "" +"Before starting, it is advised to go through the :ref:`doc_cutout_animation` " +"tutorial to gain a general understanding of animating within Godot." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:30 +msgid "" +"For this tutorial, we will be using a single image to construct our " +"character. Download it from :download:`gBot_pieces.png ` or save the image below." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:35 +msgid "" +"It is also advised to download the final character image :download:" +"`gBot_complete.png ` to have a good reference for " +"putting the different pieces together." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:41 +#, fuzzy +msgid "Creating the polygons" +msgstr "創建內容" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:43 +msgid "" +"Create a new scene for your model (if it's going to be an animated " +"character, you may want to use a ``KinematicBody2D``). For ease of use, an " +"empty 2D node is created as a root for the polygons." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:46 +msgid "" +"Begin with a ``Polygon2D`` node. There is no need to place it anywhere in " +"the scene for now, so simply create it like this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:50 +msgid "" +"Select it and assign the texture with the character pieces you have " +"downloaded before:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:54 +msgid "" +"Drawing a polygon directly is not advised. Instead, open the \"UV\" dialog " +"for the polygon:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:58 +msgid "" +"Head over to the *Points* mode, select the pencil and draw a polygon around " +"the desired piece:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:62 +msgid "" +"Duplicate the polygon node, rename it properly, enter the \"UV\" dialog " +"again and replace the old polygon with another one in the new desired piece." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:66 +msgid "Keep doing this until all pieces have been mapped." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:70 +msgid "" +"You will notice that pieces for nodes appear in the same layout as they do " +"in the original texture. This is because (by default) when you draw a " +"polygon, the UV and points are the same." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:73 +msgid "" +"Rearrange the pieces and build the character. This should be pretty quick. " +"There is no need to change pivots, so don't bother making sure rotation " +"pivots for each piece are right; you can leave them be for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:78 +msgid "" +"Ah, the visual order of the pieces is not correct yet, as some are covering " +"wrong pieces. Rearrange the order of the nodes to fix this:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:82 +msgid "" +"And there you go! It was definitely much easier than in the cutout tutorial." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:85 +#, fuzzy +msgid "Creating the skeleton" +msgstr "創建內容" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:87 +msgid "" +"Create a ``Skeleton2D`` node as a child of the root node. This will be the " +"base of our skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:91 +msgid "" +"Create a ``Bone2D`` node as a child of the skeleton. Put it on the hip " +"(usually skeletons start here). The bone will be pointing to the right, but " +"you can ignore this for now." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:96 +msgid "Keep creating bones in hierarchy and naming them accordingly." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:100 +msgid "" +"At the end of this chain, there will be a *jaw* node. It is, again, very " +"short and pointing to the right. This is normal for bones without children. " +"The length of *tip* bones can be changed with a property in the inspector:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:105 +msgid "" +"In this case, we don't need to rotate the bone (coincidentially the jaw " +"points right in the sprite), but in case you need to, feel free to do it. " +"Again, this is only really needed for tip bones as nodes with children don't " +"usually need a length or a specific rotation." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:108 +msgid "Keep going and build the whole skeleton:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:112 +msgid "" +"You will notice that all bones raise an annoying warning about a missing " +"rest pose. This means that it's time to set one. Go to the *skeleton* node " +"and create a rest pose. This pose is the default one, you can come back to " +"it anytime you want (which is very handy for animating):" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:117 +msgid "" +"The warnings will go away. If you modify the skeleton (add/remove bones) you " +"will need to set the rest pose again." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:120 +msgid "Deforming the polygons" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:122 +msgid "" +"Select the previously created polygons and assign the skeleton node to their " +"``Skeleton`` property. This will ensure that they can eventually by deformed " +"by it." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:126 +msgid "Click the property highlighted above and select the skeleton node:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:130 +msgid "" +"Again, open the UV editor for the polygon and go to the *Bones* section." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:134 +msgid "" +"You will not be able to paint weights yet. For this you need to synchronize " +"the list of bones from the skeleton with the polygon. This step is done only " +"once and manually (unless you modify the skeleton by adding/removing/" +"renaming bones). It ensures that your rigging information is kept in the " +"polygon, even if a skeleton node is accidentally lost or the skeleton " +"modified. Push the \"Sync Bones to Polygon\" button to sync the list." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:140 +msgid "" +"The list of bones will automatically appear. By default, your polygon has no " +"weight assigned to any of them. Select the bones you want to assign weight " +"to and paint them:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:145 +msgid "" +"Points in white have a full weight assigned, while points in black are not " +"influenced by the bone. If the same point is painted white for multiple " +"bones, the influence will be distributed amongst them (so usually there is " +"not that much need to use shades in-between unless you want to polish the " +"bending effect)." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:151 +msgid "" +"After painting the weights, animating the bones (NOT the polygons!) will " +"have the desired effect of modifying and bending the polygons accordingly. " +"As you only need to animate bones in this approach, work becomes much easier!" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:154 +msgid "" +"But it's not all roses. Trying to animate bones that bend the polygon will " +"often yield unexpected results:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:158 +msgid "" +"This happens because Godot generates internal triangles that connect the " +"points when drawing the polygon. They don't always bend the way you would " +"expect. To solve this, you need to set hints in the geometry to clarify how " +"you expect it to deform." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:162 +msgid "Internal vertices" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:164 +msgid "" +"Open the UV menu for each bone again and go to the *Points* section. Add " +"some internal vertices in the regions where you expect the geometry to bend:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:168 +msgid "" +"Now, go to the *Polygon* section and redraw your own polygons with more " +"detail. Imagine that, as your polygons bend, you need to make sure they " +"deform the least possible, so experiment a bit to find the right setup." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:173 +msgid "" +"Once you start drawing, the original polygon will disappear and you will be " +"free to create your own:" +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:177 +msgid "" +"This amount of detail is usually fine, though you may want to have more fine-" +"grained control over where triangles go. Experiment by yourself until you " +"get the results you like." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:179 +msgid "" +"**Note:** Don't forget that your newly added internal vertices also need " +"weight painting! Go to the *Bones* section again to assign them to the right " +"bones." +msgstr "" + +#: ../../docs/tutorials/animation/2d_skeletons.rst:181 +msgid "Once you are all set, you will get much better results:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:4 +msgid "AnimationTree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:9 +msgid "" +"With :ref:`AnimationPlayer `, Godot has one of the " +"most flexible animation systems that you can find in any game engine. The " +"ability to animate pretty much any property in any node or resource, as well " +"as having dedicated transform, bezier, function calling, audio and sub-" +"animation tracks, is pretty much unique." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:13 +msgid "" +"However, the support for blending those animations via ``AnimationPlayer`` " +"is relatively limited, as only a fixed cross-fade transition time can be set." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:15 +msgid "" +":ref:`AnimationTree ` is a new node introduced in Godot " +"3.1 to deal with advanced transitions. It supersedes the ancient " +"``AnimationTreePlayer``, while adding a huge amount of features and " +"flexibility." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:19 +#, fuzzy +msgid "Creating an AnimationTree" +msgstr "創建內容" + +#: ../../docs/tutorials/animation/animation_tree.rst:21 +msgid "" +"Before starting, it must be made clear that an ``AnimationTree`` node does " +"not contain its own animations. Instead, it uses animations contained in an " +"``AnimationPlayer`` node. This way, you can edit your animations (or import " +"them from a 3D scene) as usual and then use this extra node to control the " +"playback." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:25 +msgid "" +"The most common way to use ``AnimationTree`` is in a 3D scene. When " +"importing your scenes from a 3D exchange format, they will usually come with " +"animations built-in (either multiple ones or split from a large one on " +"import). At the end, the imported Godot scene will contain the animations in " +"a ``AnimationPlayer`` node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:29 +msgid "" +"As you rarely use imported scenes directly in Godot (they are either " +"instantiated or inherited from), you can place the ``AnimationTree`` node in " +"your new scene which contains the imported one. Afterwards, point the " +"``AnimationTree`` node to the ``AnimationPlayer`` that was created in the " +"imported scene." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:32 +msgid "" +"This is how it's done in the `Third Person Shooter demo `_, for reference:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:36 +msgid "" +"A new scene was created for the player with a ``KinematicBody`` as root. " +"Inside this scene, the original ``.dae`` (Collada) file was instantiated and " +"an ``AnimationTree`` node was created." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:40 +#, fuzzy +msgid "Creating a tree" +msgstr "創建內容" + +#: ../../docs/tutorials/animation/animation_tree.rst:42 +msgid "" +"There are three main types of nodes that can be used in ``AnimationTree``:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:44 +msgid "" +"Animation nodes, which reference an animation from the linked " +"``AnimationTree``." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:45 +msgid "Animation Root nodes, which are used to blend sub-nodes." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:46 +msgid "" +"Animation Blend nodes, which are used within ``AnimationNodeBlendTree`` as " +"single-graph blending via multiple input ports." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:48 +msgid "To set a root node in ``AnimationTree``, a few types are available:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:52 +msgid "" +"``AnimationNodeAnimation``: Selects an animation from the list and plays it. " +"This is the simplest root node, and generally not used directly as root." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:53 +msgid "" +"``AnimationNodeBlendTree``: Contains many *blend* type nodes, such as mix, " +"blend2, blend3, one shot, etc. This is one of the most commonly used roots." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:54 +msgid "" +"``AnimationNodeStateMachine``: Contains multiple root nodes as children in a " +"graph. Each node is used as a *state*, and provides multiple functions to " +"alternate between states." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:55 +msgid "" +"``AnimationNodeBlendSpace2D``: Allows placing root nodes in a 2D blend " +"space. Control the blend position in 2D to mix between multiple animations." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:56 +msgid "``AnimationNodeBlendSpace1D``: Simplified version of the above (1D)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:59 +msgid "Blend tree" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:61 +msgid "" +"An ``AnimationNodeBlendTree`` can contain both root and regular nodes used " +"for blending. Nodes are added to the graph from a menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:65 +msgid "" +"All blend trees contain an ``Output`` node by default, and something has to " +"be connected to it in order for animations to play." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:67 +msgid "" +"The easiest way to test this functionality is to connect an ``Animation`` " +"node to it directly:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:71 +msgid "" +"This will simply play back the animation. Make sure that the " +"``AnimationTree`` is active for something to actually happen." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:73 +msgid "Following is a short description of available nodes:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:76 +msgid "Blend2 / Blend3" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:78 +msgid "" +"These nodes will blend between two or three inputs by a user-specified blend " +"value:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:82 +msgid "For more complex blending, it is advised to use blend spaces instead." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:84 +msgid "" +"Blending can also use filters, i.e. you can control individually which " +"tracks go through the blend function. This is very useful for layering " +"animations on top of each other." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:90 +msgid "OneShot" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:92 +msgid "" +"This node will execute a sub-animation and return once it finishes. Blend " +"times for fading in and out can be customized, as well as filters." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:97 +msgid "Seek" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:99 +msgid "" +"This node can be used to cause a seek command to happen to any sub-children " +"of the graph. After setting the time, this value returns to -1." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:102 +msgid "TimeScale" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:104 +msgid "" +"Allows scaling the speed of the animation (or reverse it) in any children " +"nodes. Setting it to 0 will pause the animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:107 +msgid "Transition" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:109 +msgid "" +"Very simple state machine (when you don't want to cope with a " +"``StateMachine`` node). Animations can be connected to the outputs and " +"transition times can be specified." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:112 +msgid "BlendSpace2D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:114 +msgid "" +"``BlendSpace2D`` is a node to do advanced blending in two dimensions. Points " +"are added to a two dimensional space and then a position can be controlled " +"to determine blending:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:119 +msgid "" +"The ranges in X and Y can be controlled (and labeled for convenience). By " +"default, points can be placed anywhere (just right-click on the coordinate " +"system or use the *add point* button) and triangles will be generated " +"automatically using Delaunay." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:124 +msgid "" +"It is also possible to draw the triangles manually by disabling the *auto " +"triangle* option, though this is rarely necessary:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:128 +msgid "" +"Finally, it is possible to change the blend mode. By default, blending " +"happens by interpolating points inside the closest triangle. When dealing " +"with 2D animations (frame by frame), you may want to switch to *Discrete* " +"mode. Alternatively, if you want to keep the current play position when " +"switching between discrete animations, there is a *Carry* mode. This mode " +"can be changed in the *Blend* menu:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:136 +msgid "BlendSpace1D" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:138 +msgid "" +"This is similar to 2D blend spaces, but in one dimension (so triangles are " +"not needed)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:141 +msgid "StateMachine" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:143 +msgid "" +"This node is a relatively simple state machine. Root nodes can be created " +"and connected via lines. States are connected via *Transitions*, which are " +"connections with special properties. Transitions are uni-directional, but " +"two can be used to connect in both ways." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:148 +#, fuzzy +msgid "There are many types of transitions:" +msgstr "Godot 沒有使用限制" + +#: ../../docs/tutorials/animation/animation_tree.rst:152 +msgid "" +"*Immeditate*: Will switch to the next state immediately. The current state " +"will end and blend into the beginning of the new one." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:153 +msgid "" +"*Sync*: Will switch to the next state immediately, but will seek the new " +"state to the playback position of the old state." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:154 +msgid "" +"*At End*: Will wait for the current state playback to end, then switch to " +"the beginning of the next state animation." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:156 +msgid "" +"Transitions also have a few properties. Click any transition and it will be " +"displayed in the inspector dock:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:160 +msgid "" +"*Switch Mode* is the transition type (see above), it can be modified after " +"creation here." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:161 +msgid "" +"*Auto Advance* will turn on the transition automatically when this state is " +"reached. This works best with the *At End* switch mode." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:162 +msgid "" +"*Advance Condition* will turn on auto advance when this condition is set. " +"This is a custom text field that can be filled with a variable name. The " +"variable can be modified from code (more on this later)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:164 +msgid "*Xfade Time* is the time to cross-fade between this state and the next." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:165 +msgid "" +"*Priority* is used together with the ``travel()`` function from code (more " +"on this later). When travelling from a state to another, give more priority " +"to this node." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:166 +msgid "" +"*Disabled* allows to disable this transition (it will not be used during " +"travel or auto advance)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:170 +msgid "Root motion" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:172 +msgid "" +"When working with 3D animations, a popular technique is for animators to use " +"the root skeleton bone to give motion to the rest of the skeleton. This " +"allows animating characters in a way where steps actually match the floor " +"below. It also allows precise interaction with objects during cinematics." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:175 +msgid "" +"When playing back the animation in Godot, it is possible to select this bone " +"as the *root motion track*. Doing so will cancel the bone transformation " +"visually (the animation will stay in place)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:180 +msgid "" +"Afterwards, the actual motion can be retrieved via the :ref:`AnimationTree " +"` API as a transform:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:191 +msgid "" +"This can be fed to functions such as :ref:`KinematicBody.move_and_slide " +"` to control the character " +"movement." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:193 +msgid "" +"There is also a tool node, ``RootMotionView``, that can be placed in a scene " +"and will act as a custom floor for your character and animations (this node " +"is normally disabled during the game)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:200 +msgid "Controlling from code" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:202 +msgid "" +"After building the tree and previewing it, the only question remaining is " +"\"How is all this controlled from code?\"." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:204 +msgid "" +"Keep in mind that the animaton nodes are just resources and, as such, they " +"are shared between all the instances. Setting values in the nodes directly " +"will affect all instances of the scene that uses this ``AnimationTree``. " +"This has some cool use cases, though, e.g. you can copy and paste parts of " +"your animation tree, or reuse nodes with a complex layout (such as a state " +"machine or blend space) in different animation trees." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:209 +msgid "" +"The actual animation data is contained in the ``AnimationTree`` node and is " +"accessed via properties. Check the \"Parameters\" section of the " +"``AnimationTree`` node to see all the parameters that can be modified in " +"real-time:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:214 +msgid "" +"This is handy because it makes it possible to animate them from an " +"``AnimationPlayer``, or even the ``AnimationTree`` itself, allowing the " +"realisation of very complex animation logic." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:217 +msgid "" +"To modify these values from code, the property path must be obtained. This " +"is done easily by hovering the mouse over any of the parameters:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:221 +msgid "Which allows setting them or reading them:" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:236 +msgid "State machine travel" +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:238 +msgid "" +"One of the nice features in Godot's ``StateMachine`` implementation is the " +"ability to travel. The graph can be instructed to go from the current state " +"to another one, while visiting all the intermediate ones. This is done via " +"the A\\* algorithm." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:241 +msgid "" +"To use the travel ability, you should first retrieve the :ref:" +"`AnimationNodeStateMachinePlayback " +"` object from the ``AnimationTree`` " +"node (it is exported as a property)." +msgstr "" + +#: ../../docs/tutorials/animation/animation_tree.rst:254 +msgid "" +"Once retrieved, it can be used by calling one of the many functions it " +"offers:" msgstr "" #: ../../docs/tutorials/inputs/index.rst:2 @@ -43084,7 +43632,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:9 msgid "" -"Godot provides many post-processing effects out of the box including, Bloom, " +"Godot provides many post-processing effects out of the box, including Bloom, " "DOF, and SSAO. Sometimes you want to write your own custom effect. Here's " "how you can do so." msgstr "" @@ -43107,9 +43655,10 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:22 msgid "" -"At the time of writing Godot does not support rendering to multiple buffers " -"at the same time. Your post-processing shader will not have access to " -"normals or other render passes. You only have access to the rendered frame." +"As of the time of writing, Godot does not support rendering to multiple " +"buffers at the same time. Your post-processing shader will not have access " +"to normals or other render passes. You only have access to the rendered " +"frame." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:27 @@ -43126,35 +43675,35 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:36 msgid "" -"Rendering using a ``Viewport`` gives you control over the how the scene " -"render, including the framerate, and you can use the ``ViewportContainer`` " -"to render 3D objects in a 2D scene." +"Rendering using a ``Viewport`` gives you control over how the scene render, " +"including the framerate, and you can use the ``ViewportContainer`` to render " +"3D objects in a 2D scene." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:40 msgid "" -"For this demo we will use a :ref:`Node2D ` with a " -"``ViewportContainer`` and finally a ``Viewport``. Your Node tab should look " -"like this:" +"For this demo, we will use a :ref:`Node2D ` with a " +"``ViewportContainer`` and finally a ``Viewport``. Your **Scene** tab should " +"look like this:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:45 msgid "" -"Inside the ``Viewport`` you can have whatever you want. This will contain " -"your main scene. For this tutorial we will use a field of random boxes:" +"Inside the ``Viewport``, you can have whatever you want. This will contain " +"your main scene. For this tutorial, we will use a field of random boxes:" msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:50 msgid "" -"Add a new a :ref:`ShaderMaterial ` to the " +"Add a new :ref:`ShaderMaterial ` to the " "``ViewportContainer``, and assign a new shader resource to it. You can " "access your rendered ``Viewport`` with the built-in ``TEXTURE`` uniform." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:55 msgid "" -"You can choose not to use a ``ViewportContainer``, but if you do so you will " -"need to create your own uniform in the shader and pass the ``Viewport`` " +"You can choose not to use a ``ViewportContainer``, but if you do so, you " +"will need to create your own uniform in the shader and pass the ``Viewport`` " "texture in manually, like so:" msgstr "" @@ -43194,7 +43743,7 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:108 msgid "" "To make a multi-pass post-processing shader, you stack ``Viewport`` nodes. " -"In the example above you rendered the content of one ``Viewport`` object " +"In the example above, you rendered the content of one ``Viewport`` object " "into the root ``Viewport``, through a ``ViewportContainer`` node. You can do " "the same thing for a multi-pass shader by rendering the content of one " "``Viewport`` into another and then rendering the last ``Viewport`` into the " @@ -43221,8 +43770,8 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:126 msgid "" -"Besides the node structure, the steps are the same as with the single-pass " -"post-processing shader." +"Apart from the node structure, the steps are the same as with the single-" +"pass post-processing shader." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:128 @@ -43235,13 +43784,13 @@ msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:168 msgid "" -"Using the above code you should end up with a full screen blur effect like " +"Using the above code, you should end up with a full screen blur effect like " "below." msgstr "" #: ../../docs/tutorials/viewports/custom_postprocessing.rst:172 msgid "" -"For more information on how ``Viewport`` nodes work see the :ref:`Viewports " +"For more information on how ``Viewport`` nodes work, see the :ref:`Viewports " "Tutorial `." msgstr "" @@ -43263,20 +43812,20 @@ msgid "" "how to take mesh data (vertex positions, colors, normals, etc.) and draw " "them to the screen. Shaders do not process information the same way a normal " "program does because they are optimized for running on the GPU. One " -"consequence of this is that shaders do not retain their data after they run, " +"consequence of this is that shaders do not retain their data after they run; " "they output a final color to the screen and then move on. Accordingly, there " "is no way of accessing the color output from the last run of the shader." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:16 msgid "" -"Godot uses a shader language very similar to GLSL but with added " +"Godot uses a shader language very similar to GLSL, but with added " "functionality and slightly less flexibility. The reason for doing this is " "that Godot integrates built-in functionality to make writing complex shaders " "substantially easier. Godot wraps the user-written shader code in code of " -"its own. This way Godot handles a lot of the low-level stuff that the user " +"its own. That way, Godot handles a lot of the low-level stuff that the user " "doesn't need to worry about, and it is able to parse your shader code and " -"use it to affect the rendering pipeline. For more advanced shaders you can " +"use it to affect the rendering pipeline. For more advanced shaders, you can " "turn this functionality off using a render_mode." msgstr "" @@ -43319,7 +43868,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:45 msgid "" -"For detailed information on each shading type see the corresponding " +"For detailed information on each shading type, see the corresponding " "reference document." msgstr "" @@ -43382,9 +43931,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:82 msgid "" -"By default Godot will take your vertex information and transform it " +"By default, Godot will take your vertex information and transform it " "accordingly to be drawn. If this is undesirable, you can use render modes to " -"to transform the data yourself, see the :ref:`Spatial shader doc " +"transform the data yourself; see the :ref:`Spatial shader doc " "` for an example of this." msgstr "" @@ -43407,11 +43956,11 @@ msgid "" "for ``ROUGHNESS``, ``RIM``, or ``TRANSMISSION`` which would tell the light " "function how the lights respond to that fragment. This makes it possible to " "control a complex shading pipeline without the user having to write much " -"code. If you don't need this built in functionality you can ignore it and " +"code. If you don't need this built-in functionality, you can ignore it and " "write your own light processing function and Godot will optimize it away. " "For example, if you do not write a value to ``RIM``, Godot will not " "calculate rim lighting. During compilation, Godot checks to see if ``RIM`` " -"is used, if not it cuts all the corresponding code out. Therefore, you will " +"is used; if not, it cuts all the corresponding code out. Therefore, you will " "not waste calculations on effects that you do not use." msgstr "" @@ -43430,10 +43979,10 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shaders.rst:110 msgid "" -"The ``light`` processor works differently in 2D than it does in 3D, for a " -"description of how it works in each, see their respective documentation. :" -"ref:`CanvasItem shaders ` and :ref:`Spatial shaders " -"`" +"The ``light`` processor works differently in 2D than it does in 3D; for a " +"description of how it works in each, see their documentation, :ref:" +"`CanvasItem shaders ` and :ref:`Spatial shaders " +"`, respectively." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:4 @@ -43484,7 +44033,7 @@ msgid "**bvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:27 -msgid "Two component vector of booleans." +msgid "Two-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 @@ -43492,7 +44041,7 @@ msgid "**bvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:29 -msgid "Three component vector of booleans." +msgid "Three-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 @@ -43500,7 +44049,7 @@ msgid "**bvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:31 -msgid "Four component vector of booleans." +msgid "Four-component vector of booleans." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:33 @@ -43517,7 +44066,7 @@ msgid "**ivec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:35 -msgid "Two component vector of signed integers." +msgid "Two-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 @@ -43525,7 +44074,7 @@ msgid "**ivec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:37 -msgid "Three component vector of signed integers." +msgid "Three-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 @@ -43533,7 +44082,7 @@ msgid "**ivec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:39 -msgid "Four component vector of signed integers." +msgid "Four-component vector of signed integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 @@ -43541,7 +44090,7 @@ msgid "**uint**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:41 -msgid "Unsigned scalar integer, can't contain negative numbers." +msgid "Unsigned scalar integer; can't contain negative numbers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 @@ -43549,7 +44098,7 @@ msgid "**uvec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:43 -msgid "Two component vector of unsigned integers." +msgid "Two-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 @@ -43557,7 +44106,7 @@ msgid "**uvec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:45 -msgid "Three component vector of unsigned integers." +msgid "Three-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 @@ -43565,7 +44114,7 @@ msgid "**uvec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:47 -msgid "Four component vector of unsigned integers." +msgid "Four-component vector of unsigned integers." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:49 @@ -43583,7 +44132,7 @@ msgid "**vec2**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:51 -msgid "Two component vector of floating point values." +msgid "Two-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 @@ -43592,7 +44141,7 @@ msgid "**vec3**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:53 -msgid "Three component vector of floating point values." +msgid "Three-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 @@ -43602,7 +44151,7 @@ msgid "**vec4**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:55 -msgid "Four component vector of floating point values." +msgid "Four-component vector of floating point values." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:57 @@ -43642,7 +44191,7 @@ msgid "**sampler2D**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:63 -msgid "Sampler type, for binding 2D textures, which are read as float." +msgid "Sampler type for binding 2D textures, which are read as float." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:65 @@ -43697,9 +44246,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:101 msgid "" -"For matrices, use ``m[row][column]`` indexing syntax to access each scalar, " -"or ``m[idx]`` for access a vector by row index. For example, for accessing " -"the y position of an object in a mat4 you use ``m[3][1]``." +"For matrices, use the ``m[row][column]`` indexing syntax to access each " +"scalar, or ``m[idx]`` to access a vector by row index. For example, for " +"accessing the y position of an object in a mat4 you use ``m[3][1]``." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:106 @@ -43719,8 +44268,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:130 msgid "" -"Matrices can also been built from a matrix of another dimension. There are " -"two rules : If a larger matrix is constructed from a smaller matrix, the " +"Matrices can also be built from a matrix of another dimension. There are two " +"rules : If a larger matrix is constructed from a smaller matrix, the " "additional rows and columns are set to the values they would have in an " "identity matrix. If a smaller matrix is constructed from a larger matrix, " "the top, left submatrix of the larger matrix is used." @@ -43744,7 +44293,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:160 msgid "" -"It is possible to add precision modifiers to datatypes, use them for " +"It is possible to add precision modifiers to datatypes; use them for " "uniforms, variables, arguments and varyings:" msgstr "" @@ -43761,9 +44310,9 @@ msgid "" "Keep in mind that some architectures (mainly mobile) benefit a lot from " "this, but are also restricted (conversion between precisions has a cost). " "Please read the relevant documentation on the target architecture to find " -"out more. In all honesty though, mobile drivers are buggy so to stay out of " -"trouble make simple shaders without specifying precision unless you *really* " -"need to." +"out more. In all honesty though, mobile drivers are buggy, so, to stay out " +"of trouble, make simple shaders without specifying precision unless you " +"*really* need to." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:181 @@ -44046,7 +44595,7 @@ msgstr "" msgid "" "Keep in mind that, in modern GPUs, an infinite loop can exist and can freeze " "your application (including editor). Godot can't protect you from this, so " -"be careful to not make this mistake!" +"be careful not to make this mistake!" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:240 @@ -44067,12 +44616,12 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:262 msgid "" -"You can only use functions that are defined above the function you are " -"calling them from." +"You can only use functions that have been defined above (higher in the " +"editor) the function from which you are calling them." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:265 -msgid "Function argument can have special qualifiers:" +msgid "Function arguments can have special qualifiers:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:267 @@ -44098,9 +44647,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:282 msgid "" -"To send data from the vertex to fragment processor function, *varyings* are " -"used. They are set for every primitive vertex in the *vertex processor*, and " -"the value is interpolated for every pixel in the fragment processor." +"To send data from the vertex to the fragment processor function, *varyings* " +"are used. They are set for every primitive vertex in the *vertex processor*, " +"and the value is interpolated for every pixel in the fragment processor." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:300 @@ -44126,7 +44675,7 @@ msgid "**flat**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:324 -msgid "The value is not interpolated" +msgid "The value is not interpolated." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 @@ -44136,7 +44685,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:326 msgid "" "The value is interpolated in a perspective-correct fashion. This is the " -"default" +"default." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:331 @@ -44168,8 +44717,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:352 msgid "" "Any GLSL type except for *void* can be a uniform. Additionally, Godot " -"provides optional shader hints to make the compiler understand what the " -"uniform is used for." +"provides optional shader hints to make the compiler understand for what the " +"uniform is used." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:363 @@ -44295,7 +44844,7 @@ msgstr "" msgid "" "As Godot's 3D engine renders in linear color space, it's important to " "understand that textures that are supplied as color (i.e. albedo) need to be " -"specified as such for proper SRGB->linear conversion." +"specified as such for proper sRGB->linear conversion." msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:415 @@ -44651,7 +45200,7 @@ msgid "vec_type **step** ( vec_type a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:517 -msgid "\\` b[i] < a[i] ? 0.0 : 1.0 \\`" +msgid "``b[i] < a[i] ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 @@ -44659,7 +45208,7 @@ msgid "vec_type **step** ( float a, vec_type b )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:519 -msgid "\\` b[i] < a ? 0.0 : 1.0 \\`" +msgid "``b[i] < a ? 0.0 : 1.0``" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:521 @@ -44784,7 +45333,7 @@ msgid "vec_type **faceforward** ( vec_type N, vec_type I, vec_type Nref )" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:551 -msgid "If dot(Nref, I) < 0 return N, otherwise –N" +msgid "If dot(Nref, I) < 0, return N, otherwise –N" msgstr "" #: ../../docs/tutorials/shading/shading_reference/shading_language.rst:553 @@ -45281,14 +45830,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:98 msgid "" -"Other built-ins such as UV, UV2 and COLOR are also passed through to the " +"Other built-ins, such as UV, UV2 and COLOR, are also passed through to the " "fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:100 msgid "" "Users can override the modelview and projection transforms using the " -"``POSITION`` built-in. When ``POSITION`` is used the value from ``VERTEX`` " +"``POSITION`` built-in. When ``POSITION`` is used, the value from ``VERTEX`` " "is ignored and projection does not happen. However, the value passed to the " "fragment shader still comes from ``VERTEX``." msgstr "" @@ -45647,7 +46196,8 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:204 msgid "" -"Alpha (0..1), if written to the material will go to transparent pipeline." +"Alpha (0..1); if written to, the material will go to the transparent " +"pipeline." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:206 @@ -45664,7 +46214,7 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:208 msgid "" -"Specular. Defaults to 0.5, best to not modify unless you want to change IOR." +"Specular. Defaults to 0.5, best not to modify unless you want to change IOR." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:210 @@ -45754,7 +46304,7 @@ msgid "out float **AO_LIGHT_AFFECT**" msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:230 -msgid "How much AO affects lights (0..1. default 0)." +msgid "How much AO affects lights (0..1; default 0)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/spatial_shader.rst:232 @@ -45979,14 +46529,14 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:47 msgid "" -"User can disable the built-in modelview transform (projection will still " +"The user can disable the built-in modelview transform (projection will still " "happen later) and do it manually with the following code:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:60 msgid "" -"Other built-ins such as UV and COLOR are also passed through to the fragment " -"function if not modified." +"Other built-ins, such as UV and COLOR, are also passed through to the " +"fragment function if not modified." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:72 @@ -46061,9 +46611,9 @@ msgstr "" msgid "" "Certain Nodes (for example, :ref:`Sprites `) display a texture " "by default. However, when a custom fragment function is attached to these " -"nodes the texture lookup needs to be done manually. Godot does not provide " -"the texture color in the ``COLOR`` built-in variable, to read the texture " -"color for such nodes use:" +"nodes, the texture lookup needs to be done manually. Godot does not provide " +"the texture color in the ``COLOR`` built-in variable; to read the texture " +"color for such nodes, use:" msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:105 @@ -46071,7 +46621,7 @@ msgid "" "This differs from the behaviour of the built-in normal map. If a normal map " "is attached, Godot uses it by default and assigns its value to the built-in " "``NORMAL`` variable. If you are using a normal map meant for use in 3D, it " -"will appear inverted. In order to use it in your shader you must assign it " +"will appear inverted. In order to use it in your shader, you must assign it " "to the ``NORMALMAP`` property. Godot will handle converting it for use in 2D " "and overwriting ``NORMAL``." msgstr "" @@ -46173,13 +46723,13 @@ msgid "" "and then once for each light touching that object in the scene. Use " "render_mode ``unshaded`` if you do not want any light passes to occur for " "that object. Use render_mode ``light_only`` if you only want light passes to " -"occur for that object, this can be useful when you only want the object " +"occur for that object; this can be useful when you only want the object " "visible where it is covered by light." msgstr "" #: ../../docs/tutorials/shading/shading_reference/canvas_item_shader.rst:161 msgid "" -"When the shader is on a light pass the ``AT_LIGHT_PASS`` variable will be " +"When the shader is on a light pass, the ``AT_LIGHT_PASS`` variable will be " "``true``." msgstr "" @@ -46285,9 +46835,9 @@ msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:11 msgid "" "Particle shaders are unique because they are not used to draw the object " -"themself they are used to calculate particle properties, which are then used " +"itself; they are used to calculate particle properties, which are then used " "by the CanvasItem of Spatial shader. They contain only a vertex processor " -"functions that outputs multiple properties (see built-ins below)." +"function that outputs multiple properties (see built-ins below)." msgstr "" #: ../../docs/tutorials/shading/shading_reference/particle_shader.rst:16 @@ -46467,7 +47017,7 @@ msgid "Create complex texture blendings." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:19 -msgid "Create animated materials, or materials that change with time." +msgid "Create animated materials, or materials that change over time." msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:20 @@ -46490,7 +47040,7 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:26 msgid "" -"Traditionally, most engines will ask you to learn GLSL, HLSL or CG, which " +"Traditionally, most engines will ask you to learn GLSL, HLSL or Cg, which " "are pretty complex for the skillset of most artists. Godot uses a simplified " "version of a shader language that will detect errors as you type, so you can " "see your edited shaders in real-time. Additionally, it is possible to edit " @@ -46518,8 +47068,8 @@ msgstr "" #: ../../docs/tutorials/shading/shader_materials.rst:47 msgid "" "It is possible to convert from SpatialMaterial, CanvasItemMaterial and " -"ParticlesMaterial to ShaderMaterial. To do this go to the material " -"properties and enable the convert option." +"ParticlesMaterial to ShaderMaterial. To do so, go to the material properties " +"and enable the convert option." msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:4 @@ -46588,7 +47138,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:37 msgid "" -"Download the to the shader project here to follow along: :download:" +"Download the intro to shaders project here to follow along: :download:" "`2d_water_shader.zip `." msgstr "" @@ -46601,7 +47151,7 @@ msgstr "" #: ../../docs/tutorials/shading/intro_to_shaders_water_workshop.rst:43 msgid "" "You will find the 3D water project on `this GitHub repository `_. We didn't include it here as it " +"github.com/BastiaanOlij/shader_tutorial>`_. We didn't include it here, as it " "is a little heavy." msgstr "" @@ -46611,18 +47161,19 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:9 msgid "" -"Very often it is desired to make a shader that reads from the same screen " -"it's writing to. 3D APIs such as OpenGL or DirectX make this very difficult " -"because of internal hardware limitations. GPUs are extremely parallel, so " -"reading and writing causes all sort of cache and coherency problems. As a " -"result, not even the most modern hardware supports this properly." +"Very often, it is desired to make a shader that reads from the same screen " +"to which it's writing. 3D APIs, such as OpenGL or DirectX, make this very " +"difficult because of internal hardware limitations. GPUs are extremely " +"parallel, so reading and writing causes all sorts of cache and coherency " +"problems. As a result, not even the most modern hardware supports this " +"properly." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:16 msgid "" "The workaround is to make a copy of the screen, or a part of the screen, to " "a back-buffer and then read from it while drawing. Godot provides a few " -"tools that makes this process easy!" +"tools that make this process easy!" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:21 @@ -46632,10 +47183,10 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:23 msgid "" "Godot :ref:`doc_shading_language` has a special texture, \"SCREEN_TEXTURE" -"\" (and \"DEPTH_TEXTURE\" for depth, in case of 3D). It takes as parameter " -"the UV of the screen and returns a vec3 RGB with the color. A special built-" -"in varying: SCREEN_UV can be used to obtain the UV for the current fragment. " -"As a result, this simple 2D fragment shader:" +"\" (and \"DEPTH_TEXTURE\" for depth, in the case of 3D). It takes as " +"argument the UV of the screen and returns a vec3 RGB with the color. A " +"special built-in varying: SCREEN_UV can be used to obtain the UV for the " +"current fragment. As a result, this simple 2D fragment shader:" msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:34 @@ -46661,7 +47212,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:45 msgid "" -"SCREEN_TEXTURE can be used for a lot of things. There is a special demo for " +"SCREEN_TEXTURE can be used for many things. There is a special demo for " "*Screen Space Shaders*, that you can download to see and learn. One example " "is a simple shader to adjust brightness, contrast and saturation:" msgstr "" @@ -46699,7 +47250,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:90 msgid "" -"In 2D this can be corrected via the :ref:`BackBufferCopy " +"In 2D, this can be corrected via the :ref:`BackBufferCopy " "` node, which can be instantiated between both " "spheres. BackBufferCopy can work by either specifying a screen region or the " "whole screen:" @@ -46722,14 +47273,14 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:106 msgid "" "If a node uses the SCREEN_TEXTURE, the entire screen is copied to the back " -"buffer before drawing that node. This only happens the first time, " +"buffer before drawing that node. This only happens the first time; " "subsequent nodes do not trigger this." msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:109 msgid "" "If a BackBufferCopy node was processed before the situation in the point " -"above (even if SCREEN_TEXTURE was not used), this behavior described in the " +"above (even if SCREEN_TEXTURE was not used), the behavior described in the " "point above does not happen. In other words, automatic copying of the entire " "screen only happens if SCREEN_TEXTURE is used in a node for the first time " "and no BackBufferCopy node (not disabled) was found before in tree-order." @@ -46752,7 +47303,7 @@ msgstr "" #: ../../docs/tutorials/shading/screen-reading_shaders.rst:126 msgid "" "For 3D Shaders, it's also possible to access the screen depth buffer. For " -"this, the DEPTH_TEXTURE built-in is used. This texture is not linear, it " +"this, the DEPTH_TEXTURE built-in is used. This texture is not linear; it " "must be converted via the inverse projection matrix." msgstr "" @@ -46774,7 +47325,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:13 msgid "" -"For detailed information on Godot's shading language please refer to the :" +"For detailed information on Godot's shading language, please refer to the :" "ref:`Shading Language ` reference." msgstr "" @@ -46795,8 +47346,8 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:25 msgid "" -"In GLSL each shader uses a separate program. You have one program for the " -"vertex shader and one for the fragment shader. In Godot you have a single " +"In GLSL, each shader uses a separate program. You have one program for the " +"vertex shader and one for the fragment shader. In Godot, you have a single " "shader that contains a ``vertex`` and/or a ``fragment`` function. If you " "only choose to write one, Godot will supply the other." msgstr "" @@ -46804,7 +47355,7 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:29 msgid "" "Godot allows uniform variables and functions to be shared by defining the " -"fragment and vertex shaders in one file. In GLSL the vertex and fragment " +"fragment and vertex shaders in one file. In GLSL, the vertex and fragment " "programs cannot share variables except when varyings are used." msgstr "" @@ -46814,10 +47365,10 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:36 msgid "" -"In GLSL you can pass in per-vertex information using attributes. In GLSL you " -"have the flexibility to pass in as much or as little as you want. In Godot " -"you have a set number of input attributes including, ``VERTEX`` (position), " -"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list see the :ref:" +"In GLSL, you can pass in per-vertex information using attributes and have " +"the flexibility to pass in as much or as little as you want. In Godot, you " +"have a set number of input attributes, including ``VERTEX`` (position), " +"``COLOR``, ``UV``, ``UV2``, ``NORMAL``. For a complete list, see the :ref:" "`Shading language reference `." msgstr "" @@ -46829,15 +47380,15 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:44 msgid "" "``gl_Position`` receives the final position of a vertex specified in the " -"vertex shader. It is specified by the user in clip space. Typically in GLSL " -"the model space vertex position is passed in using a vertex attribute called " -"``position`` and you handle the conversion from model space to clip space " -"manually." +"vertex shader. It is specified by the user in clip space. Typically, in " +"GLSL, the model space vertex position is passed in using a vertex attribute " +"called ``position`` and you handle the conversion from model space to clip " +"space manually." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:49 msgid "" -"In Godot ``VERTEX`` specifies the vertex position in model space at the " +"In Godot, ``VERTEX`` specifies the vertex position in model space at the " "beginning of the ``vertex`` function. Godot also handles the final " "conversion to clip space after the user-defined ``vertex`` function is run. " "If you want to skip the conversion from model to view space, you can set the " @@ -46850,20 +47401,20 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:59 msgid "" "Varyings are a type of variable that can be passed from the vertex shader to " -"the fragment shader. In modern GLSL (3.0 and up) varyings are defined with " +"the fragment shader. In modern GLSL (3.0 and up), varyings are defined with " "the ``in`` and ``out`` keywords. A variable going out of the vertex shader " "is defined with ``out`` in the vertex shader and ``in`` inside the fragment " "shader." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:64 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:207 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:206 msgid "Main" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:66 msgid "" -"In GLSL each shader program looks like a self-contained C-style program. " +"In GLSL, each shader program looks like a self-contained C-style program. " "Accordingly, the main entry point is ``main``. If you are copying a vertex " "shader, rename ``main`` to ``vertex`` and if you are copying a fragment " "shader, rename ``main`` to ``fragment``." @@ -46886,75 +47437,75 @@ msgid "" "``#define`` is used to define constants or small functions. There is no " "straightforward way to translate defines to Godot's shading language. If it " "is a function that is defined, then replace with a function, and if it is a " -"constant then replace with a uniform. For other macros (``#if``, ``#ifdef``, " -"etc.) there is no equivalent because they run during the pre-processing " -"stage of compilation." +"constant, then replace with a uniform. For other macros (``#if``, " +"``#ifdef``, etc.), there is no equivalent because they run during the pre-" +"processing stage of compilation." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:88 msgid "" -"GLSL has many built in variables that are hard-coded. These variables are " +"GLSL has many built-in variables that are hard-coded. These variables are " "not uniforms, so they are not editable from the main program." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Variable" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:92 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:159 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:219 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:158 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:218 msgid "Equivalent" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "gl_FragColor" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "out vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "COLOR" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:94 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:221 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:220 msgid "Output color for each pixel." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "gl_FragCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "vec4" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 msgid "FRAGCOORD" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:96 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:223 -msgid "For full screen quads. For smaller quads use UV." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:222 +msgid "For full screen quads. For smaller quads, use UV." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:98 @@ -46982,9 +47533,9 @@ msgid "gl_PointCoord" msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:102 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "vec2" msgstr "" @@ -47009,8 +47560,8 @@ msgid "True if front face of primitive." msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:110 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:185 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:233 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:184 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:232 msgid "Coordinates" msgstr "" @@ -47023,11 +47574,11 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:118 msgid "" -"In GLSL you can define the precision of a given type (float or int) at the " -"top of the shader with the ``precision`` keyword. In Godot you can set the " +"In GLSL, you can define the precision of a given type (float or int) at the " +"top of the shader with the ``precision`` keyword. In Godot, you can set the " "precision of individual variables as you need by placing precision " "qualifiers ``lowp``, ``mediump``, and ``highp`` before the type when " -"defining the variable. For more information see the :ref:`Shading Language " +"defining the variable. For more information, see the :ref:`Shading Language " "` reference." msgstr "" @@ -47044,38 +47595,37 @@ msgstr "" #: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:129 msgid "" -"Shadertoy does not give the user full control over the shader. It only " -"allows the user to write a fragment shader. It handles all the input and " -"uniforms and only lets the user write the fragment shader." +"Shadertoy does not give the user full control over the shader. It handles " +"all the input and uniforms and only lets the user write the fragment shader." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:134 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:201 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:133 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:200 msgid "Types" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:136 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:135 msgid "" -"Shadertoy uses the webgl spec so it runs a slightly different version of " +"Shadertoy uses the webgl spec, so it runs a slightly different version of " "GLSL. However, it still has the regular types, including `Constants`_ and " "macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:140 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:139 msgid "mainImage" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:142 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:141 msgid "" "The main point of entry to a Shadertoy shader is the ``mainImage`` function. " -"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord`` which " -"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot respectively. These " +"``mainImage`` has two parameters, ``fragColor`` and ``fragCoord``, which " +"correspond to ``COLOR`` and ``FRAGCOORD`` in Godot, respectively. These " "parameters are handled automatically in Godot, so you do not need to include " "them as parameters yourself. Anything in the ``mainImage`` function should " "be copied into the ``fragment`` function when porting to Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:151 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:150 msgid "" "In order to make writing fragment shaders straightforward and easy, " "Shadertoy handles passing a lot of helpful information from the main program " @@ -47087,184 +47637,184 @@ msgid "" "reader a hint about what they can pass in as a substitute." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:161 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:160 msgid "fragColor" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:163 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:162 msgid "fragCoord" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 msgid "iResolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "vec3" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "1.0 / SCREEN_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:165 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:164 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "Can also pass in manually." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 msgid "iTime" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "TIME" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:167 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:166 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "Time since shader started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "iTimeDelta" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Provide with Uniform" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:169 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:168 msgid "Time to render previous frame." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "iFrame" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:171 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:170 msgid "Frame number." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "iChannelTime[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:173 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:172 msgid "Time since that particular texture started." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 msgid "iMouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:175 -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:174 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "Mouse position in pixel coordinates." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "iDate" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:177 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:176 msgid "Current date, expressed in seconds." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "iChannelResolution[4]" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "1.0 / TEXTURE_PIXEL_SIZE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:179 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:178 msgid "Resolution of particular texture." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "iChanneli" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "Sampler2D" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 msgid "TEXTURE" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:181 -msgid "Godot provides only one built in, user can make more." +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:180 +msgid "Godot provides only one built-in; user can make more." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:187 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:186 msgid "" "``fragCoord`` behaves the same as ``gl_FragCoord`` in :ref:`GLSL " "` and ``FRAGCOORD`` in Godot." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:191 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:190 msgid "The Book of Shaders" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:193 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:192 msgid "" "Similar to Shadertoy, `The Book of Shaders `_ " -"provides access to a fragment shader in the web browser for the user to " -"interact with. The user is restricted to writing fragment shader code with a " +"provides access to a fragment shader in the web browser, with which the user " +"may interact. The user is restricted to writing fragment shader code with a " "set list of uniforms passed in and with no ability to add additional " "uniforms." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:197 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:196 msgid "" "For further help on porting shaders to various frameworks generally, The " "Book of Shaders provides a `page `_ on " "running shaders in various frameworks." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:203 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:202 msgid "" -"The Book of Shaders uses the webgl spec so it runs a slightly different " +"The Book of Shaders uses the webgl spec, so it runs a slightly different " "version of GLSL. However, it still has the regular types, including " "`Constants`_ and macros." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:209 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:208 msgid "" "The entry point for a Book of Shaders fragment shader is ``main``, just like " "in GLSL. Everything written in a Book of Shaders ``main`` function should be " "copied into Godot's ``fragment`` function." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:215 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:214 msgid "" "The Book of Shaders sticks closer to plain GLSL than Shadertoy does. It also " "implements fewer uniforms than Shadertoy." msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:225 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:224 msgid "u_resolution" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:227 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:226 msgid "u_time" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:229 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:228 msgid "u_mouse" msgstr "" -#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:235 +#: ../../docs/tutorials/shading/migrating_to_godot_shader_language.rst:234 msgid "" "The Book of Shaders uses the same coordinate system as :ref:`GLSL " "`." @@ -47280,14 +47830,14 @@ msgid "" "Mesh` inside a shader. Vertex displacement can be used for " "a wide variety of effects, but most commonly it is used as a quick way to " "turn a flat plane into a simple terrain. Typically this is done using a " -"heightmap, but in order to keep everything self contained, in this tutorial " -"we will use noise in a shader. At the end of this tutorial we will have a " +"heightmap, but in order to keep everything self contained, in this tutorial, " +"we will use noise in a shader. At the end of this tutorial, we will have a " "deformed plane that looks like a miniature terrain complete with dynamic " "lighting." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:18 -msgid "By reading this tutorial you should gain a basic understanding of:" +msgid "By reading this tutorial, you should gain a basic understanding of:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:20 @@ -47360,7 +47910,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:58 msgid "" -"You can see that there are now way more triangles in the :ref:" +"You can see that there are now many more triangles in the :ref:" "`Mesh`. This will give us more vertices to work with and " "thus allow us to add more detail." msgstr "" @@ -47371,8 +47921,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:67 msgid "" -"Now that we have a :ref:`Plane Mesh` to draw lets setup " -"the material that will deform the :ref:`Mesh`." +"Now that we have a :ref:`Plane Mesh` to draw, let's set " +"up the material that will deform the :ref:`Mesh`." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:69 @@ -47409,7 +47959,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:94 msgid "" "This should remove the errors and your :ref:`Mesh` " -"should turn white. If you were to comment out the ``render_mode`` the plane " +"should turn white. If you were to comment out the ``render_mode``, the plane " "would appear blue because it would pick up the sky colors." msgstr "" @@ -47427,25 +47977,25 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:109 msgid "" -"With nothing in the ``vertex`` function Godot will use its default vertex " +"With nothing in the ``vertex`` function, Godot will use its default vertex " "shader. We can easily start to make changes by adding a single line:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:118 -msgid "Adding this line you should get an image like the one below." +msgid "Adding this line, you should get an image like the one below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:122 msgid "" -"Okay, lets unpack this. The ``y`` value of the ``VERTEX`` is being " +"Okay, let's unpack this. The ``y`` value of the ``VERTEX`` is being " "increased. And we are passing the ``x`` and ``z`` components of the " -"``VERTEX`` as arguments to ``cos`` and ``sin`` this gives us a wave like " -"appearance across the ``x`` and ``z`` axis." +"``VERTEX`` as arguments to ``cos`` and ``sin``; that gives us a wave-like " +"appearance across the ``x`` and ``z`` axes." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:126 msgid "" -"What we want to achieve is the look of little hills, after all ``cos`` and " +"What we want to achieve is the look of little hills; after all. ``cos`` and " "``sin`` already look kind of like hills. We do so by scaling the inputs to " "the ``cos`` and ``sin`` functions." msgstr "" @@ -47460,7 +48010,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:148 msgid "" -"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Lets move " +"Looks much more hilly now. But ``cos`` and ``sin`` are boring. Let's move " "onto something more interesting." msgstr "" @@ -47471,10 +48021,10 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:153 msgid "" "Noise is a very popular tool for procedural generation. Think of it as " -"similar to the cosine function where you have repeating hills except with " -"noise each hill has a different height. Understanding noise is not necessary " -"for this tutorial. There is nothing wrong with simply copying and pasting " -"the code below." +"similar to the cosine function where you have repeating hills except, with " +"noise, each hill has a different height. Understanding noise is not " +"necessary for this tutorial. There is nothing wrong with simply copying and " +"pasting the code below." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:158 @@ -47488,22 +48038,22 @@ msgid "" "You will find similar functions to this all over the internet. It is " "lovingly referred to as the 'one-liner hash function'. It works well for " "simple noise, but there are many better alternatives floating around as " -"well. For this tutorial it will work fine." +"well. For this tutorial, it will work fine." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:171 msgid "" "Next we define the ``noise`` function. It smoothly interpolates between the " -"random heights. Again, if this code seems daunting, do not worry, just copy " +"random heights. Again, if this code seems daunting, do not worry; just copy, " "paste and move on with the tutorial." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:185 msgid "" -"Lastly, to add detail we combine successive layers of noise using something " -"called fractal brownian motion or FBM. Scary name aside FBM noise just adds " -"together layers of noise with increase frequency and decreasing amplitude. " -"To implement it we run over a for loop where we increase the frequency each " +"Lastly, to add detail, we combine successive layers of noise using something " +"called fractal brownian motion or FBM. Scary name aside, FBM noise just adds " +"together layers of noise with increasing frequency and decreasing amplitude. " +"To implement it, we run over a for loop where we increase the frequency each " "level, decrease the amplitude, and calculate a new layer of noise." msgstr "" @@ -47515,7 +48065,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:213 msgid "" -"With the noise function in place we already have something that looks kind " +"With the noise function in place, we already have something that looks kind " "of cool. There is a lot of detail, it kind of looks hilly or mountainous." msgstr "" @@ -47534,23 +48084,23 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:223 msgid "" -"Now lets look at the :ref:`Mesh` with a regular shader " +"Now let's look at the :ref:`Mesh` with a regular shader " "instead of the wireframe. Set the viewport back to 'Display Normal'." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:228 msgid "" "The :ref:`Mesh` appears completely white because the " -"fragment shader is coloring each pixel white, but if every pixel is white we " -"lose detail on the :ref:`Mesh`. So lets color each pixel " -"based on the height calculated in the vertex shader. We do so by setting the " -"``COLOR`` variable in the vertex shader. And by setting the ``ALBEDO`` in " -"the fragment shader to the calculated ``COLOR`` variable." +"fragment shader is coloring each pixel white; but if every pixel is white, " +"we lose detail on the :ref:`Mesh`. So let's color each " +"pixel based on the height calculated in the vertex shader. We do so by " +"setting the ``COLOR`` variable in the vertex shader. And by setting the " +"``ALBEDO`` in the fragment shader to the calculated ``COLOR`` variable." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:245 msgid "" -"With this change we can see the detail of the :ref:" +"With this change, we can see the detail of the :ref:" "`Mesh`, even without displaying the :ref:" "`Mesh`'s wireframe." msgstr "" @@ -47559,20 +48109,20 @@ msgstr "" msgid "" "Uniform variables allow you to pass data from the game into the shader. They " "can be very useful for controlling shader effects. Uniforms can be almost " -"any datatype that can be used in the shader. To use a uniform you declare it " -"in your :ref:`Shader` using the keyword ``uniform``." +"any datatype that can be used in the shader. To use a uniform, you declare " +"it in your :ref:`Shader` using the keyword ``uniform``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:257 -msgid "Lets make a uniform that changes the height of the terrain." +msgid "Let's make a uniform that changes the height of the terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:264 msgid "" -"Godot lets you initialize a uniform with a value, here ``height_scale`` is " -"set to ``0.5``. You can set uniforms from gdscript by calling the function " +"Godot lets you initialize a uniform with a value; here, ``height_scale`` is " +"set to ``0.5``. You can set uniforms from GDScript by calling the function " "``set_shader_param`` on the material corresponding to the shader. The value " -"passed from gdscript takes precedence over the value used to initialize it " +"passed from GDScript takes precedence over the value used to initialize it " "in the shader." msgstr "" @@ -47597,8 +48147,8 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:291 msgid "" -"Using uniforms we can even change the value every frame to animate the " -"height of the terrain. Combined with :ref:`Tweens` this can be " +"Using uniforms, we can even change the value every frame to animate the " +"height of the terrain. Combined with :ref:`Tweens`, this can be " "especially useful for simple animations." msgstr "" @@ -47608,41 +48158,41 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:297 msgid "" -"As a final part of this tutorial lets try to set up the terrain to interact " -"with light. First, we will add an :ref:`OmniLight` to the " -"scene." +"As a final part of this tutorial, let's try to set up the terrain to " +"interact with light. First, we will add an :ref:`OmniLight` " +"to the scene." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:303 msgid "" -"You should notice that nothing changes, this is because we set the " -"``render_mode`` to ``unshaded`` at the beginning of this tutorial, lets " +"You should notice that nothing changes. That is because we set the " +"``render_mode`` to ``unshaded`` at the beginning of this tutorial; let's " "remove that." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:313 msgid "" -"It looks slightly better now, you can see the light affecting the terrain, " +"It looks slightly better now; you can see the light affecting the terrain, " "and it has turned blue as a result of the sky. The problem is the light is " "affecting the terrain as if it were a flat plane. This is because the light " "shader uses the normals of the :ref:`Mesh` to calculate " "light. The normals are stored in the :ref:`Mesh`, but we " -"are changing the shape of the :ref:`Mesh` in the shader " -"so the normals are no longer correct. To fix this we need to recalculate the " -"normals in the shader. Godot makes this easy for us, all we have to do is " -"calculate the new normal and set ``NORMAL`` to that value in the vertex " -"shader. With ``NORMAL`` set Godot will do all the difficult lighting " +"are changing the shape of the :ref:`Mesh` in the shader, " +"so the normals are no longer correct. To fix this, we need to recalculate " +"the normals in the shader. Godot makes this easy for us; all we have to do " +"is calculate the new normal and set ``NORMAL`` to that value in the vertex " +"shader. With ``NORMAL`` set, Godot will do all the difficult lighting " "calculations for us." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:322 msgid "" -"To calculate the normal from noise we are going to use a technique called " +"To calculate the normal from noise, we are going to use a technique called " "'central differences'. This is used a lot, especially in places like " -"shadertoy, to calculate normals in shaders. What we will do is calculate the " +"Shadertoy, to calculate normals in shaders. What we will do is calculate the " "noise at four points surrounding the vertex in the ``x`` and ``z`` " -"directions and then calculate the slope at the vertex from that. After all a " -"normal is just an indicator of the slope of the noise." +"directions and then calculate the slope at the vertex from that. After all, " +"a normal is just an indicator of the slope of the noise." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:328 @@ -47657,34 +48207,34 @@ msgid "" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:339 -msgid "With ``NORMAL`` calculated the terrain now looks like:" +msgid "With ``NORMAL`` calculated, the terrain now looks like:" msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:343 msgid "" "This still does not look how we want it to. The issue here is that the noise " "changes faster than the vertices do. So when we calculate the normal at the " -"point of the ``VERTEX`` it does not align with what we see in the final :ref:" -"`Mesh`. In order to fix this we add more vertices. The " -"below image is made with a :ref:`Mesh` with " +"point of the ``VERTEX``, it does not align with what we see in the final :" +"ref:`Mesh`. In order to fix this, we add more vertices. " +"The below image is made with a :ref:`Mesh` with " "``subdivision`` set to ``100``." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:351 msgid "" -"Now we can drag the light around and the lighting will update automatically." +"Now, we can drag the light around and the lighting will update automatically." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:357 msgid "" -"If you zoom the camera out you can see that the :ref:" +"If you zoom the camera out, you can see that the :ref:" "`Mesh` now looks like a small terrain." msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:361 msgid "" -"That is everything for this tutorial. Hopefully you understand the basics of " -"vertex shaders in Godot. As a further exercise try changing the " +"That is everything for this tutorial. Hopefully, you now understand the " +"basics of vertex shaders in Godot. As a further exercise, try changing the " "``height_scale`` from gdscript, try using different :ref:`Primitive " "Meshes`, and try making your own functions to calculate " "``height``." @@ -47692,7 +48242,7 @@ msgstr "" #: ../../docs/tutorials/shading/vertex_displacement_with_shaders.rst:366 msgid "" -"For further information on how to use shaders in Godot you should check out " +"For further information on how to use shaders in Godot, you should check out " "the :ref:`doc_shading_language` page." msgstr "" @@ -47711,7 +48261,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:14 msgid "" -"In the previous post-processing tutorial we rendered the scene to a :ref:" +"In the previous post-processing tutorial, we rendered the scene to a :ref:" "`Viewport ` and then rendered the Viewport in a :ref:" "`ViewportContainer ` to the main scene. One " "limitation of this method is that we could not access the depth buffer " @@ -47725,9 +48275,9 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:23 msgid "" -"In the :ref:`custom post-processing tutorial ` we " -"covered how to use a Viewport to make custom post-processing effects. There " -"are two main drawbacks of using a Viewport:" +"In the :ref:`custom post-processing tutorial `, " +"we covered how to use a Viewport to make custom post-processing effects. " +"There are two main drawbacks of using a Viewport:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:27 @@ -47752,8 +48302,8 @@ msgstr "" msgid "" "First, create a new MeshInstance and set its mesh to a QuadMesh. This " "creates a quad centered at position ``(0, 0, 0)`` with a width and height of " -"``1``. Set the width and height to ``2``. Right now the quad occupies a " -"position in world space at the origin, however, we want it to move with the " +"``1``. Set the width and height to ``2``. Right now, the quad occupies a " +"position in world space at the origin; however, we want it to move with the " "camera so that it always covers the entire screen. To do this, we will " "bypass the coordinate transforms that translate the vertex positions through " "the difference coordinate spaces and treat the vertices as if they were " @@ -47777,20 +48327,20 @@ msgid "" "transformation from view space to clip space behind the scenes with the " "``PROJECTION_MATRIX`` even when ``skip_vertex_transform`` is set. Nullify " "the projection matrix by setting it to the `identity matrix `_. In Godot this is done by passing a " +"wikipedia.org/wiki/Identity_matrix>`_. In Godot, this is done by passing a " "`1` to a ``mat4``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:65 msgid "" -"Even with this vertex shader the quad keeps disappearing. This is due to " -"frustum culling which is done on the CPU. Frustum culling uses the camera " +"Even with this vertex shader, the quad keeps disappearing. This is due to " +"frustum culling, which is done on the CPU. Frustum culling uses the camera " "matrix and the AABBs of Meshes to determine if the Mesh will be visible " "*before* passing it to the GPU. The CPU has no knowledge of what we are " -"doing with the vertices so it assumes the coordinates specified refer to " +"doing with the vertices, so it assumes the coordinates specified refer to " "world positions, not clip space positions, which results in Godot culling " "the quad when we turn away from the center of the scene. In order to keep " -"the quad from being culled there are a few options:" +"the quad from being culled, there are a few options:" msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:73 @@ -47805,7 +48355,7 @@ msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:76 msgid "" -"The second option ensures that the quad is visible in the editor. While the " +"The second option ensures that the quad is visible in the editor, while the " "first option guarantees that it will still be visible even if the camera " "moves outside the AABB. You can also use both options." msgstr "" @@ -47824,50 +48374,50 @@ msgstr "" msgid "" "Similar to accessing the screen texture, accessing the depth texture is only " "possible when reading from the current viewport. The depth texture cannot be " -"accessed from another viewport you have rendered to." +"accessed from another viewport to which you have rendered." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:94 msgid "" "The values returned by ``DEPTH_TEXTURE`` are between ``0`` and ``1`` and are " -"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE`` " +"nonlinear. When displaying depth directly from the ``DEPTH_TEXTURE``, " "everything will look almost white unless it is very close. This is because " "the depth buffer stores objects closer to the camera using more bits than " "those further, so most of the detail in depth buffer is found close to the " "camera. In order to make the depth value align with world or model " -"coordinates we need to linearise the value. When we apply the projection " -"matrix to the vertex position the z value is made nonlinear, so to linearise " -"it we multiply it by the inverse of the projection matrix which in Godot is " -"accessible with the variable ``INV_PROJECTION_MATRIX``" +"coordinates, we need to linearise the value. When we apply the projection " +"matrix to the vertex position, the z value is made nonlinear, so to " +"linearise it, we multiply it by the inverse of the projection matrix, which " +"in Godot, is accessible with the variable ``INV_PROJECTION_MATRIX``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:104 msgid "" -"First take the screen space coordinates and transform them into normalized " -"device coordinates (NDC). NDC run from ``-1`` to ``1``, similar to clip " -"space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the ``x`` and " -"``y`` axis, and the depth value for ``z``." +"Firstly, take the screen space coordinates and transform them into " +"normalized device coordinates (NDC). NDC run from ``-1`` to ``1``, similar " +"to clip space coordinates. Reconstruct the NDC using ``SCREEN_UV`` for the " +"``x`` and ``y`` axis, and the depth value for ``z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:116 msgid "" "Convert NDC to view space by multiplying the NDC by " "``INV_PROJECTION_MATRIX``. Recall that view space gives positions relative " -"to the camera so the ``z`` value will give us the distance to the point." +"to the camera, so the ``z`` value will give us the distance to the point." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:129 msgid "" -"Because the camera is facing the negative ``z`` direction the position will " -"have a negative ``z`` value. In order to get a usable depth value we have to " -"negate ``view.z``." +"Because the camera is facing the negative ``z`` direction, the position will " +"have a negative ``z`` value. In order to get a usable depth value, we have " +"to negate ``view.z``." msgstr "" #: ../../docs/tutorials/shading/advanced_postprocessing.rst:132 msgid "" "The world position can be constructed from the depth buffer using the " "following code. Note that the ``CAMERA_MATRIX`` is needed to transform the " -"position from view space into world space so it needs to be passed to the " +"position from view space into world space, so it needs to be passed to the " "fragment shader with a varying." msgstr "" @@ -63988,6 +64538,12 @@ msgid "" "`_" msgstr "" +#: ../../docs/community/resources.rst:13 +msgid "" +"`KidsCanCode: An ongoing tutorial series `_" +msgstr "" + #, fuzzy #~ msgid "There is a few things to note here." #~ msgstr "Godot 沒有使用限制"