|
|
@@ -0,0 +1,234 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html class="writer-html5" lang="en" >
|
|
|
+<head>
|
|
|
+ <meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
|
|
+
|
|
|
+ <meta property="article:modified_time" content="2026-02-18T11:21:18+00:00" /><meta property="og:title" content="Introduction" />
|
|
|
+<meta property="og:type" content="website" />
|
|
|
+<meta property="og:url" content="https://docs.crownengine.org/html/latest/rendering/introduction.html" />
|
|
|
+<meta property="og:site_name" content="Crown 0.60.0 Manual" />
|
|
|
+<meta property="og:description" content="Rendering is a core part of any game engine. Crown supports both 3D and 2D rendering with dynamic lighting and shadows, and exposes high-level objects and modern post-processing features to achieve good visual results. Lights: Crown provides three light types: directional, omn..." />
|
|
|
+<meta property="og:image" content="https://docs.crownengine.org/html/latest/_images/lights_directional.png" />
|
|
|
+<meta property="og:image:alt" content="Crown 0.60.0 Manual" />
|
|
|
+<meta name="description" content="Rendering is a core part of any game engine. Crown supports both 3D and 2D rendering with dynamic lighting and shadows, and exposes high-level objects and modern post-processing features to achieve good visual results. Lights: Crown provides three light types: directional, omn..." />
|
|
|
+
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
|
+ <title>Introduction — Crown 0.60.0 Manual 0.61.0 documentation</title>
|
|
|
+ <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
|
|
+ <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
|
|
|
+ <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
|
|
|
+ <link rel="shortcut icon" href="../_static/org.crownengine.Crown.svg"/>
|
|
|
+ <link rel="canonical" href="https://docs.crownengine.org/html/latest/rendering/introduction.html" />
|
|
|
+ <!--[if lt IE 9]>
|
|
|
+ <script src="../_static/js/html5shiv.min.js"></script>
|
|
|
+ <![endif]-->
|
|
|
+
|
|
|
+ <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
|
|
|
+ <script src="../_static/jquery.js"></script>
|
|
|
+ <script src="../_static/underscore.js"></script>
|
|
|
+ <script src="../_static/doctools.js"></script>
|
|
|
+ <script src="../_static/js/theme.js"></script>
|
|
|
+ <link rel="index" title="Index" href="../genindex.html" />
|
|
|
+ <link rel="search" title="Search" href="../search.html" />
|
|
|
+ <link rel="copyright" title="Copyright" href="../copyright.html" />
|
|
|
+ <link rel="next" title="Writing Gameplay" href="../gameplay/index.html" />
|
|
|
+ <link rel="prev" title="Rendering" href="index.html" />
|
|
|
+</head>
|
|
|
+
|
|
|
+<body class="wy-body-for-nav">
|
|
|
+ <div class="wy-grid-for-nav">
|
|
|
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|
|
+ <div class="wy-side-scroll">
|
|
|
+ <div class="wy-side-nav-search" >
|
|
|
+ <a href="../index.html">
|
|
|
+ <img src="../_static/org.crownengine.Crown.svg" class="logo" alt="Logo"/>
|
|
|
+ </a>
|
|
|
+ <div class="version">
|
|
|
+ Crown 0.60.0 Manual
|
|
|
+ </div>
|
|
|
+<div role="search">
|
|
|
+ <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
|
|
+ <input type="text" name="q" placeholder="Search docs" />
|
|
|
+ <input type="hidden" name="check_keywords" value="yes" />
|
|
|
+ <input type="hidden" name="area" value="default" />
|
|
|
+ </form>
|
|
|
+</div>
|
|
|
+ </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|
|
+ <ul class="current">
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Changelog</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../introduction.html">Introduction</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../installing_crown/index.html">Installing Crown</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../getting_started/index.html">Getting Started</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../level_editor/index.html">The Level Editor</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../importing_resources/index.html">Importing Resources</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../units/index.html">Units</a></li>
|
|
|
+<li class="toctree-l1 current"><a class="reference internal" href="index.html">Rendering</a><ul class="current">
|
|
|
+<li class="toctree-l2 current"><a class="current reference internal" href="#">Introduction</a><ul>
|
|
|
+<li class="toctree-l3"><a class="reference internal" href="#lights">Lights</a><ul>
|
|
|
+<li class="toctree-l4"><a class="reference internal" href="#directional-light">Directional light</a></li>
|
|
|
+<li class="toctree-l4"><a class="reference internal" href="#local-lights">Local lights</a></li>
|
|
|
+</ul>
|
|
|
+</li>
|
|
|
+<li class="toctree-l3"><a class="reference internal" href="#shadows">Shadows</a></li>
|
|
|
+</ul>
|
|
|
+</li>
|
|
|
+</ul>
|
|
|
+</li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../gameplay/index.html">Writing Gameplay</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../deploying/index.html">Deploying</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../reference/index.html">Reference</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../lua_api.html">Lua API reference</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../copyright.html">License</a></li>
|
|
|
+<li class="toctree-l1"><a class="reference internal" href="../hackers/index.html">Engine Hackers</a></li>
|
|
|
+</ul>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </nav>
|
|
|
+
|
|
|
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|
|
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|
|
+ <a href="../index.html">Crown 0.60.0 Manual</a>
|
|
|
+ </nav>
|
|
|
+
|
|
|
+ <div class="wy-nav-content">
|
|
|
+ <div class="rst-content">
|
|
|
+ <div role="navigation" aria-label="Page navigation">
|
|
|
+ <ul class="wy-breadcrumbs">
|
|
|
+ <li><a href="../index.html" class="icon icon-home"></a> »</li>
|
|
|
+ <li><a href="index.html">Rendering</a> »</li>
|
|
|
+ <li>Introduction</li>
|
|
|
+ <li class="wy-breadcrumbs-aside">
|
|
|
+ <a href="../_sources/rendering/introduction.rst.txt" rel="nofollow"> View page source</a>
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <hr/>
|
|
|
+</div>
|
|
|
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|
|
+ <div itemprop="articleBody">
|
|
|
+
|
|
|
+ <section id="introduction">
|
|
|
+<h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
|
|
|
+<p>Rendering is a core part of any game engine. Crown supports both 3D and 2D
|
|
|
+rendering with dynamic lighting and shadows, and exposes high-level objects
|
|
|
+and modern post-processing features to achieve good visual results.</p>
|
|
|
+<section id="lights">
|
|
|
+<h2>Lights<a class="headerlink" href="#lights" title="Permalink to this headline">¶</a></h2>
|
|
|
+<p>Crown provides three light types: directional, omni, and spot. Lights are
|
|
|
+regular <a class="reference internal" href="../units/introduction.html#units"><span class="std std-ref">Units</span></a> with a Light Component attached; the component’s
|
|
|
+<code class="docutils literal notranslate"><span class="pre">Type</span></code> property selects the light type. Add a light to the level using
|
|
|
+<code class="docutils literal notranslate"><span class="pre">Spawn</span></code> -> <code class="docutils literal notranslate"><span class="pre">Light</span></code> in the <a class="reference internal" href="../level_editor/level_editor.html#editor-overview"><span class="std std-ref">Menubar</span></a>.</p>
|
|
|
+<section id="directional-light">
|
|
|
+<h3>Directional light<a class="headerlink" href="#directional-light" title="Permalink to this headline">¶</a></h3>
|
|
|
+<p>A directional light illuminates objects from a uniform direction; The
|
|
|
+brightest directional light in a Level (the one with the highest
|
|
|
+<code class="docutils literal notranslate"><span class="pre">Intensity</span></code>) is considered the sun. The sun typically renders shadows for
|
|
|
+the entire level using Cascaded Shadow Maps.</p>
|
|
|
+<figure class="align-center" id="id1">
|
|
|
+<a class="reference internal image-reference" href="../_images/lights_directional.png"><img alt="../_images/lights_directional.png" src="../_images/lights_directional.png" style="width: 564.0px; height: 474.40000000000003px;" /></a>
|
|
|
+<figcaption>
|
|
|
+<p><span class="caption-text">A directional light illuminating objects in the Level Viewport.</span><a class="headerlink" href="#id1" title="Permalink to this image">¶</a></p>
|
|
|
+</figcaption>
|
|
|
+</figure>
|
|
|
+</section>
|
|
|
+<section id="local-lights">
|
|
|
+<h3>Local lights<a class="headerlink" href="#local-lights" title="Permalink to this headline">¶</a></h3>
|
|
|
+<p>Local lights affect only nearby objects. They expose a maximum range property
|
|
|
+to limit their influence. Keep ranges reasonably small to reduce performance
|
|
|
+cost and to avoid shadowing artifacts; very large ranges can make shadows and
|
|
|
+lighting harder to tune.</p>
|
|
|
+<section id="omni-light">
|
|
|
+<h4>Omni light<a class="headerlink" href="#omni-light" title="Permalink to this headline">¶</a></h4>
|
|
|
+<p>Omni lights emit in all directions and are suitable for simulating point light
|
|
|
+sources such as light bulbs, fireplaces and so on.</p>
|
|
|
+<figure class="align-center" id="id2">
|
|
|
+<a class="reference internal image-reference" href="../_images/lights_omni.png"><img alt="../_images/lights_omni.png" src="../_images/lights_omni.png" style="width: 564.0px; height: 552.0px;" /></a>
|
|
|
+<figcaption>
|
|
|
+<p><span class="caption-text">An omni light illuminating objects in the Level Viewport.</span><a class="headerlink" href="#id2" title="Permalink to this image">¶</a></p>
|
|
|
+</figcaption>
|
|
|
+</figure>
|
|
|
+</section>
|
|
|
+<section id="spot-light">
|
|
|
+<h4>Spot light<a class="headerlink" href="#spot-light" title="Permalink to this headline">¶</a></h4>
|
|
|
+<p>Spot lights emit light inside a cone. Use the Light Component’s <code class="docutils literal notranslate"><span class="pre">Spot</span> <span class="pre">Angle</span></code>
|
|
|
+and <code class="docutils literal notranslate"><span class="pre">Range</span></code> to shape the cone. Spot lights are appropriate for torches,
|
|
|
+street lights and similar sources.</p>
|
|
|
+<figure class="align-center" id="id3">
|
|
|
+<a class="reference internal image-reference" href="../_images/lights_spot.png"><img alt="../_images/lights_spot.png" src="../_images/lights_spot.png" style="width: 564.0px; height: 509.6px;" /></a>
|
|
|
+<figcaption>
|
|
|
+<p><span class="caption-text">A spot light illuminating objects in the Level Viewport.</span><a class="headerlink" href="#id3" title="Permalink to this image">¶</a></p>
|
|
|
+</figcaption>
|
|
|
+</figure>
|
|
|
+</section>
|
|
|
+</section>
|
|
|
+</section>
|
|
|
+<section id="shadows">
|
|
|
+<h2>Shadows<a class="headerlink" href="#shadows" title="Permalink to this headline">¶</a></h2>
|
|
|
+<p>Crown uses different shadow mapping approaches depending on the light type.
|
|
|
+Directional light shadows are rendered with Cascaded Shadow Maps (4 splits).
|
|
|
+Local lights combine tetrahedron mapping and regular shadow maps inside a
|
|
|
+single shadow atlas. Use the <span class="xref std std-ref">Render Config</span> to tune shadow-map
|
|
|
+resolution and related parameters.</p>
|
|
|
+<p>Rendering convincing shadows require careful tuning. Two common shadow mapping
|
|
|
+artifacts are shadow acne and peter-panning. Use the Light Component’s
|
|
|
+<code class="docutils literal notranslate"><span class="pre">Shadow</span> <span class="pre">Bias</span></code> property to reduce these issues.</p>
|
|
|
+<p>The <code class="docutils literal notranslate"><span class="pre">Shadow</span> <span class="pre">Bias</span></code> offsets depth comparisons to compensate for shadow map
|
|
|
+precision limits. Lower bias values reduce peter-panning but can expose
|
|
|
+shadow acne; higher bias values reduce acne but can cause noticeable
|
|
|
+separation between casting objects and their shadows (peter-panning). Adjust
|
|
|
+bias incrementally to find the best compromise for your Level.</p>
|
|
|
+<figure class="align-center" id="id4">
|
|
|
+<a class="reference internal image-reference" href="../_images/shadow_artifacts.png"><img alt="../_images/shadow_artifacts.png" src="../_images/shadow_artifacts.png" style="width: 2844.0px; height: 1132.0px;" /></a>
|
|
|
+<figcaption>
|
|
|
+<p><span class="caption-text">Left: shadow acne (low bias). Right: peter-panning (high bias).</span><a class="headerlink" href="#id4" title="Permalink to this image">¶</a></p>
|
|
|
+</figcaption>
|
|
|
+</figure>
|
|
|
+</section>
|
|
|
+</section>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
|
|
+ <a href="index.html" class="btn btn-neutral float-left" title="Rendering" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
|
|
+ <a href="../gameplay/index.html" class="btn btn-neutral float-right" title="Writing Gameplay" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <hr/>
|
|
|
+
|
|
|
+ <div role="contentinfo">
|
|
|
+ <p>© <a href="../copyright.html">Copyright</a> Except where otherwise noted, content on this page is licensed under a CC-BY-SA 4.0 Int. License.
|
|
|
+ <span class="lastupdated">Last updated on Feb 18, 2026.
|
|
|
+ </span></p>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|
|
+ <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|
|
+ provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|
|
+
|
|
|
+
|
|
|
+</footer>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </section>
|
|
|
+ </div>
|
|
|
+ <script>
|
|
|
+ jQuery(function () {
|
|
|
+ SphinxRtdTheme.Navigation.enable(true);
|
|
|
+ });
|
|
|
+ </script>
|
|
|
+ <!-- Theme Analytics -->
|
|
|
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-XNVGCMNDZH"></script>
|
|
|
+ <script>
|
|
|
+ window.dataLayer = window.dataLayer || [];
|
|
|
+ function gtag(){dataLayer.push(arguments);}
|
|
|
+ gtag('js', new Date());
|
|
|
+
|
|
|
+ gtag('config', 'G-XNVGCMNDZH', {
|
|
|
+ 'anonymize_ip': true,
|
|
|
+ });
|
|
|
+ </script>
|
|
|
+
|
|
|
+</body>
|
|
|
+</html>
|