<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">
    jcc
   </journal-id>
   <journal-title-group>
    <journal-title>
     Journal of Computer and Communications
    </journal-title>
   </journal-title-group>
   <issn pub-type="epub">
    2327-5219
   </issn>
   <issn publication-format="print">
    2327-5227
   </issn>
   <publisher>
    <publisher-name>
     Scientific Research Publishing
    </publisher-name>
   </publisher>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="doi">
    10.4236/jcc.2025.137016
   </article-id>
   <article-id pub-id-type="publisher-id">
    jcc-144366
   </article-id>
   <article-categories>
    <subj-group subj-group-type="heading">
     <subject>
      Articles
     </subject>
    </subj-group>
    <subj-group subj-group-type="Discipline-v2">
     <subject>
      Computer Science 
     </subject>
     <subject>
       Communications
     </subject>
    </subj-group>
   </article-categories>
   <title-group>
    Camera Textures: A Study on Terrain Blending in Game Graphics Rendering
   </title-group>
   <contrib-group>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Xianzhi
      </surname>
      <given-names>
       Hui
      </given-names>
     </name>
    </contrib>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Yiyu
      </surname>
      <given-names>
       Deng
      </given-names>
     </name>
    </contrib>
   </contrib-group> 
   <aff id="affnull">
    <addr-line>
     aBeijing Institute of Graphic Communication, Beijing, China
    </addr-line> 
   </aff> 
   <pub-date pub-type="epub">
    <day>
     02
    </day> 
    <month>
     07
    </month>
    <year>
     2025
    </year>
   </pub-date> 
   <volume>
    13
   </volume> 
   <issue>
    07
   </issue>
   <fpage>
    319
   </fpage>
   <lpage>
    334
   </lpage>
   <history>
    <date date-type="received">
     <day>
      17,
     </day>
     <month>
      June
     </month>
     <year>
      2025
     </year>
    </date>
    <date date-type="published">
     <day>
      26,
     </day>
     <month>
      June
     </month>
     <year>
      2025
     </year> 
    </date> 
    <date date-type="accepted">
     <day>
      26,
     </day>
     <month>
      July
     </month>
     <year>
      2025
     </year> 
    </date>
   </history>
   <permissions>
    <copyright-statement>
     © Copyright 2014 by authors and Scientific Research Publishing Inc. 
    </copyright-statement>
    <copyright-year>
     2014
    </copyright-year>
    <license>
     <license-p>
      This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
     </license-p>
    </license>
   </permissions>
   <abstract>
    The transitional blending between terrain and objects is a core challenge in enhancing the realism of game scenes. Aiming at the problems of poor universality, reliance on high-configuration devices, and insufficient workflow compatibility in existing technologies, this paper proposes a technical framework for Camera Textures. Inspired by deferred rendering, this framework uniformly stores core lighting channels such as depth, albedo, normal, roughness, metallic, and ambient occlusion in a view-space texture set, constructing a cross-object lighting information sharing mechanism. Through a dynamic calculation algorithm for blending factors, combined with depth-inferred world coordinates and distance metrics, it achieves adaptive blending of geometry and materials. Furthermore, an additional camera system is designed to support pre-baking channel information for complex regions, breaking through the single-viewpoint limitation. Experiments show that this solution achieves terrain blending with low labor costs and high real-time performance in the Unity engine, supports dynamic interactive scenes, and significantly improves cross-platform universality and developer workflow compatibility.
   </abstract>
   <kwd-group> 
    <kwd>
     Camera Textures
    </kwd> 
    <kwd>
      Terrain Blending
    </kwd> 
    <kwd>
      Blending Factor
    </kwd> 
    <kwd>
      Additional Camera
    </kwd> 
    <kwd>
      Real-Time Rendering
    </kwd> 
    <kwd>
      Unity Engine
    </kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <sec id="s1">
   <title>1. Introduction</title>
   <sec id="s1_1">
    <title>1.1. Research Status of Terrain Blending</title>
    <p>With the development of computer graphics, real-time rendering technology has gradually shifted from pursuing geometric accuracy in the early stage to the ultimate simulation of realism and immersion. The transitional blending between terrain and objects, as a key link in scene authenticity, still has significant bottlenecks in existing technologies.</p>
    <p>First, in the construction of early virtual scenes, the problem of “hard boundaries” often occurs.</p>
    <p>The construction of real-time scenes relies on geometric mesh stitching, and terrain is mostly based on height maps or tiled meshes. At this stage, transitional blending technologies are relatively basic, and due to the lack of consistent processing of lighting and geometric details.</p>
    <p>To solve the “hard boundary” problem at this stage, typical technologies include Texture Blending and Vertex Coloring. Texture Blending is a technology that superimposes transitional textures in the junction area between terrain and objects to alleviate vertex color. Vertex Coloring achieves local gradient by manually editing the color and transparency of junction vertices, but it is only suitable for static scenes and has a high editing cost.</p>
    <p>Second, Physically-Based Rendering (PBR) was proposed <xref ref-type="bibr" rid="scirp.144366-1">
      [1]
     </xref>, but it did not solve the “hard boundary” problem.</p>
    <p>Based on physical rendering, it unifies the material parameters of terrain and objects, such as roughness and metallic. The BRDF lighting model is used to calculate the reflection and refraction consistency of the junction area.</p>
    <p>To solve the “hard boundary” problem at this stage, Ambient Occlusion (AO) technology was born, and it evolved into Screen Space Ambient Occlusion (SSAO), which enhances the corner shadows of the junction area and simulates the occlusion effect of the real world <xref ref-type="bibr" rid="scirp.144366-2">
      [2]
     </xref>.</p>
    <p>In summary, the blending technology at the transition between terrain and objects remains a shortcoming of mainstream rendering solutions. However, as a bridge connecting macro-scenes and micro-details, its research is of great significance for improving the immersion and realism of virtual environments.</p>
    <p>First, Unreal Engine’s Virtual Texturing (VT) is a texture management technology based on Tile Streaming. It solves the problem of traditional texture memory limitations and long-distance detail loss by dividing super-large textures into small tiles (Tiles) and loading them into video memory as needed <xref ref-type="bibr" rid="scirp.144366-3">
      [3]
     </xref>. The rendering effect is shown in <xref ref-type="fig" rid="fig1">
      Figure 1
     </xref>.</p>
    <p>However, this solution of Unreal Engine has extremely difficult-to-replicate disadvantages, so other mainstream engines, such as Unity, have not followed up with this function.</p>
    <p>Finally, in Unity, it uses a quadtree LOD system to dynamically switch the terrain mesh accuracy, combined with Frustum Culling to reduce rendering pressure. GPU instancing is used for repeated objects such as vegetation and rocks to reduce the number of Draw Calls.</p>
    <p>Shader Graph, a visualization tool, is used to create custom blending logic, supporting multi-platform Shader variants such as HLSL and GLSL, which is convenient for cross-platform deployment <xref ref-type="bibr" rid="scirp.144366-4">
      [4]
     </xref>. This tool is shown in <xref ref-type="fig" rid="fig2">
      Figure 2
     </xref>.</p>
    <fig id="fig1" position="float">
     <label>Figure 1</label>
     <caption>
      <title>Figure 1. Terrain blending in unreal engine.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId13.jpeg?20250729100008" />
    </fig>
    <fig id="fig2" position="float">
     <label>Figure 2</label>
     <caption>
      <title>Figure 2. Unity’s shader graph.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId14.jpeg?20250729100008" />
    </fig>
    <p>In summary, the existing technical solutions have the disadvantages of poor universality, difficulty in being popularized on the device models of the majority of users, and difficulty in combining with developers’ workflows.</p>
   </sec>
   <sec id="s1_2">
    <title>1.2. Research Objectives of Terrain Blending</title>
    <p>First, the terrain blending achieved by existing technologies has extremely high configuration requirements for users’ experience devices, and it is impossible to achieve universalization.</p>
    <p>Second, existing technologies cannot meet the smooth transitional blending effects between terrain and objects such as buildings, vegetation, rocks, and other artificial or natural objects in real-time rendering applications with extremely high requirements for scene realism, such as open worlds and digital twins.</p>
    <p>First, for 3D scene producers, it breaks through the “hard boundary” problem when traditional terrain and objects are interspersed, realizes seamless geometric transition between terrain and objects, and reduces the cost of manual parameter adjustment.</p>
    <p>Second, for technical art positions, in material writing, the blending effect of the terrain can be freely connected to any workflow. Furthermore, it is not just the terrain, but any mesh object that should be able to blend with each other.</p>
    <p>In summary, this study aims to break through the limitations of traditional geometric stitching and texture blending through interdisciplinary technology integration and construct a blending technology system that takes into account realism, real-time performance, and universality.</p>
    <sec id="s1">
     <title>2. Research Process</title>
    </sec>
    <sec id="s2_3">
     <title>2.1. Detailed Design and Research</title>
     <p>The core idea is that when rendering interspersed objects on the terrain, before the lighting calculation stage, they not only have their own lighting calculation information but also can obtain the lighting calculation information of the terrain under their feet. Then, the two are mixed, and the mixed values are passed into the lighting calculation to achieve blending.</p>
     <p>Based on the accumulation of relevant technologies in the Unity engine, this engine is used for technical development.</p>
     <p>The Render Feature function in the Unity Scriptable Render Pipeline is used, which is an interface provided by Unity for developers to directly access the internal logic of the rendering pipeline <xref ref-type="bibr" rid="scirp.144366-5">
       [5]
      </xref>.</p>
    </sec>
    <sec id="s2_4">
     <title>2.2. Proposal and Implementation of Camera Textures</title>
     <p>First, Camera Textures is a new concept proposed in this study.</p>
     <p>Its theoretical basis comes from Deferred Rendering, which is a solution mainly used to solve the rendering of a large number of lights. Its essence is to summarize the channel information for lighting calculation from the model and save it in multiple Render Targets, and finally perform lighting calculation uniformly.</p>
     <p>Similarly, with the help of the concept of deferred rendering, it is easier to understand what Camera Textures does.</p>
     <p>That is, obtaining the channel information for lighting calculation from the perspective of the camera from many models in the scene. For PBR metal flow rendering, the cache set should include Depth cache, Albedo (or Base Color) cache, Normal cache, as well as Metallic, Roughness (or Smoothness), and Ambient Occlusion (AO) cache, as shown in the Fragment section of <xref ref-type="fig" rid="fig3">
       Figure 3
      </xref>.</p>
     <p>In addition, in the rendering process, deferred rendering is to summarize the information channels at the end to calculate the lighting. The behavior of Camera Textures summarizing the information channels needs to be in a more forward position in the rendering process.</p>
     <fig id="fig3" position="float">
      <label>Figure 3</label>
      <caption>
       <title>Figure 3. PBR channels.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId15.jpeg?20250729100013" />
     </fig>
     <p>And different from deferred rendering, which saves the results in multiple render targets. The medium used to save Camera Textures can be of different types, such as Texture 2D or Graphic Buffer.</p>
     <p>Textures have only four channels, namely red, green, blue, and transparency, as shown in <xref ref-type="fig" rid="fig4">
       Figure 4
      </xref>.</p>
     <fig id="fig4" position="float">
      <label>Figure 4</label>
      <caption>
       <title>Figure 4. Texture channels.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId16.jpeg?20250729100013" />
     </fig>
     <p>First, when choosing a texture as the storage medium, although the depth is a floating-point number information and only occupies one channel, it is often drawn into the red channel of a separate render texture in the rendering pipeline, so it is not additionally processed and is separately saved as a depth texture, as shown in <xref ref-type="fig" rid="fig5">
       Figure 5
      </xref>.</p>
     <p>Second, the albedo is color information without transparency, with a total of 3 channels for red, green, and blue, and after acquisition, it occupies an albedo texture alone, as shown in <xref ref-type="fig" rid="fig6">
       Figure 6
      </xref>.</p>
     <p>Again, the normal is a three-dimensional vector, that is, XYZ with a total of 3 channels, and is also stored separately as a normal texture. For the convenience of subsequent reading, the normal stored here is in the world space coordinate system, as shown in <xref ref-type="fig" rid="fig7">
       Figure 7
      </xref>.</p>
     <fig id="fig5" position="float">
      <label>Figure 5</label>
      <caption>
       <title>Figure 5. Depth texture.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId17.jpeg?20250729100013" />
     </fig>
     <fig id="fig6" position="float">
      <label>Figure 6</label>
      <caption>
       <title>Figure 6. Albedo texture.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId18.jpeg?20250729100013" />
     </fig>
     <fig id="fig7" position="float">
      <label>Figure 7</label>
      <caption>
       <title>Figure 7. Normal texture.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId19.jpeg?20250729100013" />
     </fig>
     <p>Next, for roughness, metallic, and ambient occlusion, which are three floating-point numbers, they can be separately converged into a Mask Map. The arrangement of the channels is in accordance with the Unity rule standard, with metallic assigned to the red channel, ambient occlusion to the blue channel, the green channel left empty, and roughness in the alpha channel, as shown in <xref ref-type="fig" rid="fig8">
       Figure 8
      </xref>.</p>
     <p>Finally, after this step is completed, Camera Textures are set to the global variables of the Shader for use in the subsequent interpolation and blending steps, as shown in <xref ref-type="fig" rid="fig9">
       Figure 9
      </xref>.</p>
     <p>First, there is no limit to the number of channels in the cache because it is itself a collection of data structures. The data in each structure should include the lighting calculation information mentioned above, as shown in <xref ref-type="fig" rid="fig10">
       Figure 10
      </xref>.</p>
     <p>Second, because the channel information obtained by the camera is itself a Render Texture (RT), using a cache to save it requires an additional step, that is, the transcription from texture to cache, as shown in <xref ref-type="fig" rid="fig11">
       Figure 11
      </xref>.</p>
     <fig id="fig8" position="float">
      <label>Figure 8</label>
      <caption>
       <title>Figure 8. Mask texture.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId20.jpeg?20250729100014" />
     </fig>
     <fig id="fig9" position="float">
      <label>Figure 9</label>
      <caption>
       <title>Figure 9. Set global variables.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId21.jpeg?20250729100014" />
     </fig>
     <fig id="fig10" position="float">
      <label>Figure 10</label>
      <caption>
       <title>Figure 10. The data structure.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId22.jpeg?20250729100014" />
     </fig>
     <fig id="fig11" position="float">
      <label>Figure 11</label>
      <caption>
       <title>Figure 11. Write pixel data to structure.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId23.jpeg?20250729100014" />
     </fig>
    </sec>
    <sec id="s2_5">
     <title>2.3. Channel Interpolation Using Blending Factor</title>
     <p>After rendering and storing Camera Textures, the key difficulty lies in how to read the texture information in Camera Textures when rendering the interspersed objects on the terrain and blend it with the PBR channels of the interspersed objects themselves.</p>
     <p>First, the matrix method is used, a technology to restore world coordinates from depth. From the code side, the inverse matrix of the main camera’s view projection matrix (Inversed View and Projection Matrix) is set as the global matrix of the Shader.</p>
     <p>Unity provides the useful function, it’s shown in <xref ref-type="fig" rid="fig12">
       Figure 12
      </xref>.</p>
     <fig id="fig12" position="float">
      <label>Figure 12</label>
      <caption>
       <title>Figure 12. Unity provides the compute world space position function.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId24.jpeg?20250729100015" />
     </fig>
     <p>The effect of restoring world coordinates from depth using the matrix method is shown in <xref ref-type="fig" rid="fig13">
       Figure 13
      </xref>.</p>
     <fig id="fig13" position="float">
      <label>Figure 13</label>
      <caption>
       <title>Figure 13. Compute world position from depth.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId25.jpeg?20250729100015" />
     </fig>
     <p>Thereafter, the depth cache in Camera Textures can be directly transformed into world coordinates. Then, the distance between this world coordinate and the world coordinate of the fragment pixel of the interspersed object itself is subjected to a Smoothstep algorithm to obtain a blending factor with a value range of 0 to 1.</p>
     <p>By using the shader graph, the calculation of blending factor is shown in <xref ref-type="fig" rid="fig14">
       Figure 14
      </xref>.</p>
     <p>The blending factor can be presented in color, as shown in <xref ref-type="fig" rid="fig15">
       Figure 15
      </xref>.</p>
     <p>With this blending factor, linear interpolation (Lerp) algorithm can be used to blend the albedo, roughness, metallic, and ambient occlusion.</p>
     <fig id="fig14" position="float">
      <label>Figure 14</label>
      <caption>
       <title>Figure 14. Calculation of blending factor.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId26.jpeg?20250729100015" />
     </fig>
     <fig id="fig15" position="float">
      <label>Figure 15</label>
      <caption>
       <title>Figure 15. Show of blending factor.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId27.jpeg?20250729100014" />
     </fig>
     <p>In particular, for normals, special algorithms such as Spherical Interpolation (Slerp) can be used to maintain the characteristic that their length is always 1 <xref ref-type="bibr" rid="scirp.144366-6">
       [6]
      </xref>.</p>
     <p>The slerp function is shown in <xref ref-type="fig" rid="fig16">
       Figure 16
      </xref>.</p>
     <fig id="fig16" position="float">
      <label>Figure 16</label>
      <caption>
       <title>Figure 16. Slerp function.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="" />
     </fig>
     <fig id="fig16" position="float">
      <label>Figure 16</label>
      <caption>
       <title>Figure 16. Slerp function.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId28.jpeg?20250729100015" />
     </fig>
     <fig id="fig16" position="float">
      <label>Figure 16</label>
      <caption>
       <title>Figure 16. Slerp function.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId29.jpeg?20250729100015" />
     </fig>
     <p>The effect of spherical interpolation is shown in <xref ref-type="fig" rid="fig17">
       Figure 17
      </xref>.</p>
     <fig id="fig17" position="float">
      <label>Figure 17</label>
      <caption>
       <title>Figure 17. Slerp normal result.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId30.jpeg?20250729100015" />
     </fig>
     <p>By perturbing the blending factor with procedural noise or texturing, different blending effects can be achieved, as shown in <xref ref-type="fig" rid="fig18">
       Figure 18
      </xref> and <xref ref-type="fig" rid="fig19">
       Figure 19
      </xref>.</p>
     <fig id="fig18" position="float">
      <label>Figure 18</label>
      <caption>
       <title>Figure 18. Perturb blending factor.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId31.jpeg?20250729100016" />
     </fig>
     <fig id="fig19" position="float">
      <label>Figure 19</label>
      <caption>
       <title>Figure 19. Perturb blending factor result.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId32.jpeg?20250729100016" />
     </fig>
    </sec>
    <sec id="s2_6">
     <title>2.4. Scene Baking Using Additional Cameras</title>
     <p>The blending effect mentioned above is always based on the perspective of the main camera. With the help of another medium, that is, using a cache to store Camera Textures, different details in the scene can be baked, that is, Camera Textures of the Additional Camera are stored in hardware.</p>
     <p>The Directional Additional Camera is responsible for pre-rendering textures containing depth, albedo, normal, roughness, metallic, and ambient occlusion in the position of the scene requiring high details through scripts in the editor development stage, then transcribing them into the cache, and after storing the required matrix of the additional camera at the same time, packaging and storing them in the asset. The asset structure is shown in <xref ref-type="fig" rid="fig20">
       Figure 20
      </xref>.</p>
     <fig id="fig20" position="float">
      <label>Figure 20</label>
      <caption>
       <title>Figure 20. Asset used by additional camera.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId33.jpeg?20250729100018" />
     </fig>
     <p>In the rendering of interspersed objects, after blending Camera Textures of the main camera, Camera Textures of the additional camera need to be blended. The sequence is shown in <xref ref-type="fig" rid="fig21">
       Figure 21
      </xref>.</p>
     <fig id="fig21" position="float">
      <label>Figure 21</label>
      <caption>
       <title>Figure 21. Blending additional camera after main camera.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId34.jpeg?20250729100018" />
     </fig>
     <p>Due to the use of cache as the data medium, there is an upper limit to the data size of a single cache. At the same time, considering performance reasons, the upper limit of the number of additional cameras that can be mixed by a single object is tentatively set to 8.</p>
     <p>Transform a large cache at once, can make unity editor crashed. The error it gives is shown in <xref ref-type="fig" rid="fig22">
       Figure 22
      </xref>.</p>
     <fig id="fig22" position="float">
      <label>Figure 22</label>
      <caption>
       <title>Figure 22. Out of memory.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId35.jpeg?20250729100018" />
     </fig>
     <p>A table of the test on different cache size, by bake different resolution of additional camera, is shown in <xref ref-type="table" rid="table1">
       Table 1
      </xref>. Both them baked 8 camera per-object.</p>
     <table-wrap id="table1">
      <label>
       <xref ref-type="table" rid="table1">
        Table 1
       </xref></label>
      <caption>
       <title>
        <xref ref-type="bibr" rid="scirp.144366-"></xref>Table 1. Test of cache size.</title>
      </caption>
      <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
       <tr> 
        <td class="custom-bottom-td acenter" width="32.39%"><p style="text-align:center">8 × 256 px × 256 px</p></td> 
        <td class="custom-bottom-td acenter" width="32.39%"><p style="text-align:center">8 × 512 px × 512 px</p></td> 
        <td class="custom-bottom-td acenter" width="32.40%"><p style="text-align:center">8 × 1028 px × 1028 px</p></td> 
        <td class="custom-bottom-td acenter" width="32.40%"><p style="text-align:center">8 × 4096 px × 4096 px</p></td> 
       </tr> 
       <tr> 
        <td class="custom-top-td acenter" width="32.39%"><p style="text-align:center">0.3s</p></td> 
        <td class="custom-top-td acenter" width="32.39%"><p style="text-align:center">1s</p></td> 
        <td class="custom-top-td acenter" width="32.40%"><p style="text-align:center">15s</p></td> 
        <td class="custom-top-td acenter" width="32.40%"><p style="text-align:center">Crashed</p></td> 
       </tr> 
      </table>
     </table-wrap>
     <p>The successful mixing effect is shown in <xref ref-type="fig" rid="fig23">
       Figure 23
      </xref>.</p>
     <fig id="fig23" position="float">
      <label>Figure 23</label>
      <caption>
       <title>Figure 23. Directional additional camera result.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId36.jpeg?20250729100018" />
     </fig>
     <p>In the previous text, the additional camera only bakes with a fixed-direction perspective camera. The Omni Additional Camera bakes the full perspective of the upper, lower, left, right, front, and rear six sides at the same time with a 45-degree Field of View (FOV). Inspired by Unity’s Reflection Probe technology <xref ref-type="bibr" rid="scirp.144366-7">
       [7]
      </xref>, it does not bake the final rendering result but the various channel information used for lighting calculation. The effect of the omni additional camera is shown in <xref ref-type="fig" rid="fig24">
       Figure 24
      </xref>.</p>
     <fig id="fig24" position="float">
      <label>Figure 24</label>
      <caption>
       <title>Figure 24. Omni additional camera result.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId37.jpeg?20250729100018" />
     </fig>
     <p>The omni additional camera uses the channels of the additional camera mentioned above in the rendering stage of interspersed objects. The omni additional camera is essentially six directional special additional cameras, and a single object occupies the number of six additional cameras that can be mixed at the same time.</p>
     <p>The omni additional camera bakes code can be shown in <xref ref-type="fig" rid="fig25">
       Figure 25
      </xref>.</p>
     <fig id="fig25" position="float">
      <label>Figure 25</label>
      <caption>
       <title>Figure 25. Omni additional camera’s code.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId38.jpeg?20250729100018" />
     </fig>
    </sec>
   </sec>
   <sec id="s3">
    <title>3. Conclusion</title>
    <sec id="s3_1">
     <title>3.1. Conclusion about New Technologies</title>
     <p>First, the concept of Camera Textures is proposed, and a multi-channel lighting information blending framework is constructed. Inspired by deferred rendering, for the first time, the core channels required for lighting calculation of terrain and objects, such as depth, albedo, normal, roughness, metallic, and ambient occlusion, are uniformly stored in the view-space texture set to form a standardized lighting information interaction medium. A cross-object lighting information sharing mechanism is constructed, so that the material properties of the terrain and objects in the junction area, such as roughness differences and normal direction mutations, can be quantitatively calculated and mixed using blending factors, laying a data foundation for “physically real” blending.</p>
     <p>Second, the dynamic calculation method of blending factors based on matrix transformation realizes the intelligent connection of geometry and materials. By inferring world coordinates from depth textures and combining the distance metric of the object’s own fragment coordinates, adaptive blending weights are generated to replace traditional manual parameter adjustment or fixed-function mixing. It does not require pre-baked masks or rely on the engine’s built-in layer system, can respond in real time to dynamic interactions (such as object movement and terrain deformation), and automatically generates blending boundaries that conform to the geometric distance attenuation law, significantly reducing manual editing costs.</p>
     <p>Again, the “additional camera” and “omni additional camera” systems solve the problem of blending accuracy for extreme perspectives and complex details. A solution to balance cache data size and performance is proposed. A single object can be mixed with up to 8 additional cameras, breaking through the traditional single-viewpoint dependence and providing a universal solution for the omni-directional seamless connection between dynamically rotating objects, such as rotatable mechanical devices, and terrain.</p>
     <p>Then, while the research has made the above progress, there are still some areas for improvement. For example, the upper limit of the number of additional cameras that can be mixed by a single object is still 8. It is believed that with the development of hardware devices and further iterations, the problem of cache transmission scale will also be solved.</p>
     <p>In summary, this study focuses on the core problem of transitional blending between terrain and objects. Through interdisciplinary technology integration and algorithm innovation, the universality and portability of terrain blending technology are achieved. It has made multiple contributions at the theoretical method, technical implementation, and engineering application levels.</p>
    </sec>
    <sec id="s3_2">
     <title>3.2. Performance Comparison</title>
     <p>A performance comparison is provided. All results are based on the following configurations.</p>
     <p>13th Gen Intel(R) Core(TM) i9-13900HX</p>
     <p>NVIDIA GeForce RTX-4070 Laptop GPU</p>
     <p>RAM 64.0GB</p>
     <p>The test scene is shown in <xref ref-type="fig" rid="fig26">
       Figure 26
      </xref>.</p>
     <fig id="fig26" position="float">
      <label>Figure 26</label>
      <caption>
       <title>Figure 26. Test scene.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId39.jpeg?20250729100019" />
     </fig>
     <p>First, a table of the new technologies performance, includes platform in Unity Editor and on Windows Standalone, is shown in <xref ref-type="table" rid="table2">
       Table 2
      </xref>.</p>
     <table-wrap id="table2">
      <label>
       <xref ref-type="table" rid="table2">
        Table 2
       </xref></label>
      <caption>
       <title>
        <xref ref-type="bibr" rid="scirp.144366-"></xref>Table 2. Performance comparison on different platform.</title>
      </caption>
      <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
       <tr> 
        <td class="custom-bottom-td acenter" width="35.75%"><p style="text-align:center">Platform</p></td> 
        <td class="custom-bottom-td acenter" width="30.94%"><p style="text-align:center">FPS</p></td> 
        <td class="custom-bottom-td acenter" width="30.96%"><p style="text-align:center">Memory Usage</p></td> 
        <td class="custom-bottom-td acenter" width="30.96%"><p style="text-align:center">GPU Cost</p></td> 
       </tr> 
       <tr> 
        <td class="custom-top-td acenter" width="35.75%"><p style="text-align:center">Unity Editor</p></td> 
        <td class="custom-top-td acenter" width="30.94%"><p style="text-align:center">110</p></td> 
        <td class="custom-top-td acenter" width="30.96%"><p style="text-align:center">25.1/63.7 GB (37%)</p></td> 
        <td class="custom-top-td acenter" width="30.96%"><p style="text-align:center">0%</p></td> 
       </tr> 
       <tr> 
        <td class="acenter" width="35.75%"><p style="text-align:center">Windows Standalone</p></td> 
        <td class="acenter" width="30.94%"><p style="text-align:center">160</p></td> 
        <td class="acenter" width="30.96%"><p style="text-align:center">20.8/63.7 GB (33%)</p></td> 
        <td class="acenter" width="30.96%"><p style="text-align:center">8%</p></td> 
       </tr> 
      </table>
     </table-wrap>
     <p>Second, the test scene’ Statistics in Unity Editor is shown in <xref ref-type="fig" rid="fig27">
       Figure 27
      </xref>.</p>
     <fig id="fig27" position="float">
      <label>Figure 27</label>
      <caption>
       <title>Figure 27. Statistics in unity editor.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId40.jpeg?20250729100019" />
     </fig>
     <p>Third, the test scene’s performance on Windows Standalone is shown in <xref ref-type="fig" rid="fig28">
       Figure 28
      </xref>.</p>
     <fig id="fig28" position="float">
      <label>Figure 28</label>
      <caption>
       <title>Figure 28. Performance on windows standalone.</title>
      </caption>
      <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/1733232-rId41.jpeg?20250729100019" />
     </fig>
    </sec>
   </sec>
   <sec id="s4">
    <title>Acknowledgements</title>
    <p>Design and Implementation of Immersive Experience and VR Technology Application Interactive Software with the Theme of Starry Sky Culture (Project No.: 22150725062).</p>
   </sec>
  </sec>
 </body><back>
  <ref-list>
   <title>References</title>
   <ref id="scirp.144366-ref1">
    <label>1</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Hillaire, S. (2016) Physically Based Rendering in Real-Time. ACM SIGGRAPH Courses.
    </mixed-citation>
   </ref>
   <ref id="scirp.144366-ref2">
    <label>2</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Karis, B. (2013) Real Shading in Unreal Engine 4. SIGGRAPH Presentation.
    </mixed-citation>
   </ref>
   <ref id="scirp.144366-ref3">
    <label>3</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Epic Games (2020) Virtual Texturing in Unreal Engine 4. Technical Documentation. Unreal.
    </mixed-citation>
   </ref>
   <ref id="scirp.144366-ref4">
    <label>4</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Unity Technologies (2023) Shader Graph: Visual Shader Editing Tool. Unity Manual. 
    </mixed-citation>
   </ref>
   <ref id="scirp.144366-ref5">
    <label>5</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     McGuire, M. (2017) Computer Graphics Techniques in Games. CRC Press.
    </mixed-citation>
   </ref>
   <ref id="scirp.144366-ref6">
    <label>6</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Lagarde, S. (2014) Spherical Gaussian Encoding for Efficient Rendering. Journal of Computer Graphics Techniques (JCGT), 3, 1-30.
    </mixed-citation>
   </ref>
   <ref id="scirp.144366-ref7">
    <label>7</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Unity Technologies (2022) Reflection Probes Technical Guide. Unity Blog.
    </mixed-citation>
   </ref>
  </ref-list>
 </back>
</article>