.. _bpy.types.ShaderNodeTexCoord:

***********************
Texture Coordinate Node
***********************

.. figure:: /images/node-types_ShaderNodeTexCoord.webp
   :align: right
   :alt: Texture Coordinate Node.

The *Texture Coordinate* node outputs various coordinate systems
that can be used for procedural textures, image textures, and other vector-based texture inputs.

It is most commonly connected to the *Vector* input of texture nodes,
allowing textures to be placed or manipulated in different coordinate spaces.


Inputs
======

This node has no inputs.


Properties
==========

Object
   Specific object to use for object space coordinates.
   This only affects the *Object* output.

.. _cycles-nodes-input-texture-coordinate-from-instancer:

From Instancer :guilabel:`Cycles Only`
   If the object is generated by instancing from vertices or faces, use texture coordinates from instancer.
   This only affects the *Generated* and *UV* outputs.

   .. figure:: /images/render_shader-nodes_input_texture-coordinate_from-dupli-comparison.png

      From left to right: Sphere with a UV-mapped texture.
      Small spheres instanced to the faces of the textured sphere using
      :doc:`instancing from faces </scene_layout/object/properties/instancing/faces>`.
      Small spheres with *From Instancer* enabled, using the UV map of the large sphere.

   .. note::

      *From Instancer* only works with the UV output when the object is instanced,
      either :doc:`from particles </physics/particles/introduction>` or
      :doc:`from faces </scene_layout/object/properties/instancing/faces>`.


Outputs
=======

Generated
   Automatically-generated texture coordinates from the vertex positions of the mesh without deformation,
   keeping them sticking to the surface under animation.
   Range from 0.0 to 1.0 over the bounding box of the non-deformed mesh.
   See :ref:`Texture Spaces <properties-texture-space>` for more information.
Normal
   Object space normal, for texturing objects with the texture staying fixed on the object as it transformed.
   The Normal output can be used on Point and Spot lights. The coordinates will take
   the rotation of the light into account.
UV
   UV texture coordinates from the :ref:`Active Render <bpy.types.MeshUVLoopLayer.active_render>` UV map.
   See :ref:`UV Mapping <editors-uv-index>` for more information.

   .. note::

      To use a UV map other than the active one, use the
      :doc:`UV Map node </render/shader_nodes/input/uv_map>`.
Object
   Uses an object as a source for coordinates. Often used with an empty,
   this is an easy way to place a small image at a given point on the object.
   This object can also be animated, to move a texture around or through a surface.
Camera
   Position coordinate in camera space.
Window
   Location of shading point on the screen, ranging from 0.0 to 1.0
   from the left to right side and bottom to top of the render.
   This is well suited for blending two objects.
Reflection
   Uses the direction of the reflection vector as coordinates.
   This is useful for adding reflection maps. You will need this input when using environment maps.
