# Content Editor

## Tutorial

**Access URL:** [**https://cloud.kivicube.com/content-editor/index.html**](https://cloud.kivicube.com/content-editor/index.html)

The Content Editor currently supports 3D models and image assets.

Support for AR videos, transparent videos, audio, particle effects, and more asset types will be added in the future.

**Tutorial:** [**https://youtu.be/tgWoqBMndYo?si=KWeyHfDaM7H-dVhP\&t=82**](https://youtu.be/tgWoqBMndYo?si=KWeyHfDaM7H-dVhP\&t=82)

***

## Overview

#### What is the purpose of the current Content Editor?

* Supports converting FBX and OBJ files into the GLB format compatible with Kivicube
* Supports post-processing effects such as tone mapping
* Allows visual material editing for 3D models
* Allows visual lighting adjustments
* Provides real-time preview of model animations
* Enables viewing of model properties to verify compliance with specifications
* Includes model specification checks to ensure high-performance rendering after uploading to the Kivicube platform
* Offers additional model configuration options for easier visual presentation

### FAQ

<table><thead><tr><th width="92.02734375">A / Q</th><th>Context</th></tr></thead><tbody><tr><td><strong>A</strong></td><td>The model imported into the Content Editor looks different from how it appears in the modeling software</td></tr><tr><td><strong>Q</strong></td><td>This is expected behavior. The Content Editor uses a different renderer and lighting environment compared to modeling software. You will need to <strong>adjust materials</strong> and <strong>configure the lighting environment</strong> within the Content Editor.</td></tr><tr><td><strong>A</strong></td><td>The model imported into the Content Editor is missing textures</td></tr><tr><td><strong>Q</strong></td><td>Textures may be lost during the conversion process. You can simply <strong>reassign</strong> the textures to the corresponding materials within the Content Editor.</td></tr><tr><td><strong>A</strong></td><td>Model Import Failed</td></tr><tr><td><strong>Q</strong></td><td><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FbSJPvUpj6L3UlDIFBDBc%2Fimage%20(23).png?alt=media&#x26;token=6a8ac398-a920-470d-be31-5cedade67afa" alt="" data-size="original"></td></tr></tbody></table>

### Mandatory Model Requirements

Models that do not meet the following requirements cannot be imported into the Content Editor.

#### ❌ Unsupported glTF Extensions

Kivicube currently only supports the following extensions:

* KHR\_materials\_unlit
* KHR\_texture\_transform
* KHR\_materials\_pbrSpecularGlossiness

  *(After importing into the Content Editor, these will be converted into the standard workflow, and you may reset materials as needed.)*

#### How to handle unsupported glTF extensions?

* If you import from FBX, this issue usually does not occur.
* The issue mainly appears when exporting GLB directly from modeling software or using third-party GLB files.

  → When exporting, do not include unsupported extensions.

#### Texture Size / Texture Format Restrictions

* Supported formats: JPG / JPEG / PNG

  *(Use PNG for transparent textures.)*
* Texture resolution must not exceed 2048.
* Strongly recommended: use power-of-two square textures, such as:

  2×2, 4×4, 8×8, …, up to 2048×2048

{% hint style="info" %}
You can use Photoshop or XnView to export textures in formats such as GIF, TGA, DDS, PSD, TIF, BMP, EXR, HDR, etc. into JPG / JPEG / PNG.
{% endhint %}

#### Incorrect Model Data Naming

The root bone of the model must not contain animations.

If the root bone has animation data, create an additional empty bone and bind it as the parent to the original root bone.

<div align="left"><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FUpKhn5h3DFpojApcGysm%2Fimage%20(24).png?alt=media&#x26;token=08d1be27-1e98-49c1-b73d-d9c33d1ee6d3" alt=""><figcaption></figcaption></figure> <figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FkreaKpJtTkgmdt2gpBkU%2Fimage%20(25).png?alt=media&#x26;token=2bb0e528-aa08-4b32-bdad-a83bff3f0dcf" alt=""><figcaption></figcaption></figure></div>

#### Model Specifications

<table><thead><tr><th width="156.83984375">Type</th><th>Specifications</th></tr></thead><tbody><tr><td><strong>Mesh Count</strong></td><td>Severe: ≥ 10 (mesh count too high); Moderately Severe: 5–10; Compliant: ≤ 5</td></tr><tr><td><strong>Triangle Count</strong></td><td>Severe: ≥6W; Moderately Severe: 3–6W; Compliant：≤3W</td></tr><tr><td><strong>Vertex Count</strong></td><td>Severe: ≥6W; Moderately Severe: 3–6W; Compliant: ≤3W</td></tr><tr><td><strong>Material Count</strong></td><td>Severe: ≥10; Moderately Severe: 5–10; Compliant: ≤5</td></tr><tr><td><strong>Texture Count</strong></td><td>Severe: ≥10; Moderately Severe: 5–10; Compliant: ≤5</td></tr><tr><td><strong>Animation Count</strong></td><td>Severe: ≥10; Moderately Severe: 5–10; Compliant: ≤5</td></tr><tr><td><strong>Bone Count</strong></td><td>Severe: ≥120; Moderately Severe: 60–120; Compliant: ≤60</td></tr><tr><td><strong>Morph Count</strong></td><td>Severe: ≥30; Moderately Severe: 0–30; Compliant: ≤10</td></tr></tbody></table>

***

## Detailed Usage

### Model Import

#### Direct Import

* Supports direct import of FBX / OBJ / GLB
* For glTF, you must package the .gltf, .bin, and all texture files into a ZIP file before importing

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FGKy6XqANVlGH6LmAR4yb%2Fimage.png?alt=media&#x26;token=cddce7f0-17fb-4310-94ae-70f09f2495fc" alt=""><figcaption></figcaption></figure>

#### Importing from Sketchfab

**Register and Log In to Sketchfab**

* Click Login
*

```
<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FrLmVej788OsxbHREwx5S%2Fimage.png?alt=media&#x26;token=5f906857-0eef-4eb7-86ab-fd494eee3d82" alt=""><figcaption></figcaption></figure>
```

* Register and Login

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FWXndzEmaoJV3GHRciNli%2Fimage.png?alt=media&#x26;token=01b3a432-17b0-4c6d-ba31-80b928115d77" alt=""><figcaption></figcaption></figure>

* Accept Kivicube’s Authorization Request

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FV7Ux5LO3SOnrBL9SrpxR%2Fimage.png?alt=media&#x26;token=d154bd1c-a846-4346-a40f-f3f48d2ff8a2" alt=""><figcaption></figcaption></figure>

**Note**

* Pay attention to the asset license agreement to ensure proper usage right

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FwSRWDbXa8qsdOkivh1mf%2Fimage.png?alt=media&#x26;token=229b43ff-a47a-4040-9033-69b8773370e1" alt=""><figcaption></figcaption></figure>

* **Sketchfab Preview vs. Content Editor Display**\
  可通过 **灯光环境 / 渲染 / 材质** 调整到满意效果。

<div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FZKqAvxPGdQgMeve82Mfl%2Fimage%20(8).png?alt=media&#x26;token=3759b768-581b-46ac-8a5f-80db1021c355" alt=""><figcaption></figcaption></figure> <figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2F4ppkYwGuQbpXjQhFDBwv%2Fimage.png?alt=media&#x26;token=31cbd0c2-633f-45de-9e9d-3a5f7015f45a" alt=""><figcaption></figcaption></figure></div>

***

### Model Saving

Click the Save button to save the model to your asset library.

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2F0mGSbyiBnJKVchpbq20K%2Fimage.png?alt=media&#x26;token=d75c300f-da1e-47dd-8216-960a1f253a26" alt=""><figcaption></figcaption></figure>

#### Note

<table><thead><tr><th width="157.91015625">Type</th><th>Saving Condition</th></tr></thead><tbody><tr><td><strong>Model Materials</strong></td><td><p>When saving, the material settings are written directly into the model.</p><p>This means the version stored in the asset library will include the updated materials.<br></p><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FFp7Al3ULPhAV3j8BQkNo%2Fimage.png?alt=media&#x26;token=e1d0fab3-4d4e-4ca0-a804-b90a18334616" alt=""><figcaption></figcaption></figure></div></td></tr><tr><td><strong>Lighting</strong></td><td><p>Lighting adjustments are for preview purposes only.</p><p>You will need to reconfigure again in the Scene Editor.<br></p><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FDhLSwZintgOvMxwtt7et%2Fimage.png?alt=media&#x26;token=05d732f5-8878-490c-afb1-c30723561462" alt=""><figcaption></figcaption></figure></div></td></tr><tr><td><strong>Rendering</strong></td><td><p>Render adjustments are for preview purposes only.</p><p>You will need to reconfigure again in the Scene Editor.</p><p></p><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FBPrBqf7HtVEaBVZbhfVf%2Fimage.png?alt=media&#x26;token=9b9168f6-5049-4aa8-a577-89eaff10bc01" alt=""><figcaption></figcaption></figure></div></td></tr><tr><td><strong>Model Display Setting</strong></td><td><p>Model are for preview purposes only.</p><p>You will need to reconfigure again in the Scene Editor.</p><p></p><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FYMraEQcuJD1lnOzhRX8Q%2Fimage.png?alt=media&#x26;token=06c5b8ff-cea9-4da7-b5a6-ae54fb136c2c" alt=""><figcaption></figcaption></figure></div></td></tr></tbody></table>

***

### Model Preview

#### Model Properties

Be sure to use the Model Properties panel to verify that the model meets all required specifications.

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FJJz6yTIv4XxbgR7qobF9%2Fimage.png?alt=media&#x26;token=d0110e51-277a-4b26-b64a-f25715d9897e" alt=""><figcaption></figcaption></figure>

* File: Identifies which software was used to export the current model
* Size: Models with a longest edge greater than 200 m will be automatically scaled down to 100 m upon import
* glTF Extensions: Currently, only the following extensions are supported:

  * KHR\_materials\_unlit
  * KHR\_texture\_transform
  * KHR\_materials\_pbrSpecularGlossiness

  If any required extensions appear outside this list, the model may fail to load or render incorrectly.

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FONog1GyzTUVy1berYumb%2Fimage.png?alt=media&#x26;token=074ee861-cacd-46e7-9581-6b7d39521eb2" alt=""><figcaption></figcaption></figure>

#### Display Setting

After clicking Save, none of the settings in Display Settings will be saved. You will need to reconfigure these settings in the Scene Editor.

* Model Wireframe: Preview only; not saved.

  (Wireframe preview is currently not available in the Scene Editor.)
* Model Bounding Box: Preview only; not saved.

  (In the Scene Editor, the bounding box appears automatically when an object is selected.)
* Model Skeleton: Preview only; not saved.

  (Skeleton preview is currently not available in the Scene Editor.)
* Model Axes: Preview only; not saved.

  (You can use the Scene Editor’s model axes to adjust the model’s position.)
* Ground Grid: Preview only; not saved.

  (Useful for checking whether the model is centered and for assessing its position, size, and orientation.)
* Background Display: Preview only; not saved.

  (Helps with visualizing the model in context.)
* Field of View: Preview only; not saved.

  (Field of view adjustments must be done in the Scene Editor.)

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2F0RalsYc9RitI2ruxmVIA%2Fimage.png?alt=media&#x26;token=1732e509-8684-41b4-b8b4-0f50c6b073fe" alt=""><figcaption></figcaption></figure>

***

### Materials

#### Selecting Materials

A model may contain multiple materials, so be sure to configure each material properly.

After importing a model into the Content Editor, it is common to encounter missing texture maps.

Simply select the corresponding material and reassign the textures as needed.

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FVqMo5H2YxDiddOKwEhMV%2Fimage.png?alt=media&#x26;token=315aa733-e600-495f-ada4-5c3fb22f6bb2" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FgCA47erclR06Z50UfprJ%2Fimage%20(19).png?alt=media&#x26;token=871ad82e-b44e-4de5-b5a7-ffa638618b83" alt=""><figcaption></figcaption></figure>

#### Material Setting

**Material Types**

* **Metal/Roughness**

  A PBR (Physically Based Rendering) workflow that responds to lighting. Suitable for realistic materials influenced by light.
* **Unlit**

  A material type not affected by lighting. This option offers higher performance and requires only a base color texture.

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2F3cXlxjXTP5kcCJtlEMba%2Fimage.png?alt=media&#x26;token=28949144-3f7c-4daa-aa0f-1e806f0f42c3" alt=""><figcaption></figcaption></figure>

**Alpha Mode**

<table><thead><tr><th width="238.84765625">Type</th><th></th></tr></thead><tbody><tr><td><p><strong>Opaque</strong></p><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2F2FxDIsbGUth6TVYlZeut%2Fimage.png?alt=media&#x26;token=51412311-a19e-4b66-8c4f-1cf48ec0e966" alt=""><figcaption></figcaption></figure></div></td><td><ul><li>If you need a material to be non-transparent, set its transparency mode to <strong>Opaque.</strong></li></ul></td></tr><tr><td><p><strong>Transparent / Semi-Transparent (BLEND)</strong></p><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FRx96Ed71CQVNu1rWWuv7%2Fimage.png?alt=media&#x26;token=73fa590d-66c2-411d-99e2-aec9bbece292" alt=""><figcaption></figcaption></figure></div></td><td><ul><li>If a material contains semi-transparency, set its transparency mode to <strong>Blend.</strong></li></ul></td></tr><tr><td><p><strong>Transparent MASK</strong></p><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2Fohlhdz28j50djWznKiWn%2Fimage.png?alt=media&#x26;token=0193a890-414c-495e-99b8-b4eccf78f415" alt=""><figcaption></figcaption></figure></div><p></p></td><td><ul><li><p>If a material contains transparency but no semi-transparency (for example, leaves), set the transparency mode to MASK.</p><p></p></li><li><p>When the texture’s alpha value is greater than or equal to the Alpha Cutoff, the pixel will be rendered as opaque.</p><p>When the alpha value is below the Alpha Cutoff, the pixel will be rendered as fully transparent.</p></li></ul><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FadoPJv3uewjKMf1Z6Ukt%2Fimage.png?alt=media&#x26;token=fc5756ae-9d07-47b9-be86-ebf35934c6f2" alt=""><figcaption></figcaption></figure></div><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2F9xgCH9tOnM2zbQ1mBRWj%2Fimage.png?alt=media&#x26;token=98b8ad16-9e32-4839-a7dc-8b3389ebc853" alt=""><figcaption></figcaption></figure></div></td></tr></tbody></table>

**Side**

Enabling double-sided rendering will increase performance costs. Please avoid enabling it unless absolutely necessary.

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2F7oyQjqNajR9qHlo7Isfi%2Fimage.png?alt=media&#x26;token=4e3d7bf8-8bb5-4d5f-b1a6-e32a58e7b4d6" alt=""><figcaption></figcaption></figure>

**Material Property Settings**

<table><thead><tr><th width="138.85546875">Property</th><th width="230.02734375">Illustration</th><th>Description</th></tr></thead><tbody><tr><td><strong>Base Color</strong></td><td><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2Fhcn3KC906do7k23ZoyIU%2Fimage.png?alt=media&#x26;token=a4df81b2-b0df-48d4-b544-c37c0e00e80a" alt=""><figcaption></figcaption></figure></div></td><td><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FMZm3FGO24bUbuEqkr4Ji%2Fbasecolor.gif?alt=media&#x26;token=9c27c5ba-e110-46bd-a481-f7b026b884b6" alt=""><figcaption></figcaption></figure></div><p>为模型添加一个颜色贴图或者直接设置颜色<br></p></td></tr><tr><td><strong>Roughness/Metalness</strong></td><td><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FFSKmd2DbOLbR71EdYhly%2Fimage.png?alt=media&#x26;token=e5efd7e9-b195-4c04-a930-16970d66d707" alt=""></td><td><p><strong>Roughness</strong> controls how rough or smooth the model’s surface appears.<br><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2F9xBbDC3EWrIndIVlwkkf%2Froughness.gif?alt=media&#x26;token=d6d36c8f-7e74-4c5e-9d80-d8c5421a4088" alt=""><br></p><ul><li>A lower roughness value results in a smoother surface, while a higher roughness value makes the surface more rough.</li><li>A roughness map controls the roughness at different areas of the model, allowing some regions to appear smooth while others appear rough.</li></ul><p></p><p><strong>Metalness / Metallic Glossiness</strong> controls the metallic appearance of the model.</p><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FMNxtCLV87pO0g9AU2G6Z%2Fmetallic.gif?alt=media&#x26;token=f8cfea8b-b238-43cf-8d95-e6be7c315538" alt=""><figcaption></figcaption></figure></div><ul><li>The higher the metalness value, the more metallic the surface appears.</li><li>A metalness map controls the metalness level at different areas of the model, allowing some parts to appear more metallic while others remain non-metallic.</li></ul></td></tr><tr><td><strong>Occlusion</strong></td><td><p><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2Fji0COCd3Xz4a4Sx8CFEP%2Fimage.png?alt=media&#x26;token=7bb0121e-93ad-4493-973a-b0256f51da42" alt="" data-size="original"></p><p></p></td><td><p>Ambient Occlusion (AO) adds shadow detail to a model.</p><p><br>Sometimes, to reduce the number of texture maps, shadow details are baked directly into the base color texture. From a PBR rendering perspective, this is technically not recommended, but in practice it can be used when appropriate.</p></td></tr><tr><td><strong>Emissive</strong></td><td><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FaIo93nqmQfkZwC5QxcLn%2Fimage.png?alt=media&#x26;token=c7a9db83-c789-40fc-a500-4f41557b4de3" alt=""><figcaption></figcaption></figure></div></td><td>Add an emissive map to the model or directly set an emissive color.</td></tr><tr><td><strong>Normal</strong></td><td><div><figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FSPsyKSwK2gbXNvKeRu4I%2Fimage.png?alt=media&#x26;token=189d81cf-acbe-4700-9264-4681cedc048c" alt=""><figcaption></figcaption></figure></div></td><td>A normal map is used to add surface detail to a model.</td></tr></tbody></table>

***

#### Material Texture

**Texture Formats**&#x20;

> Only **jpg / jpeg / png** are supported. Use **png** for transparent textures.

| Original Format                               | Converting Method                                                 |
| --------------------------------------------- | ----------------------------------------------------------------- |
| gif / tga / dds / psd / tif / bmp / exr / hdr | Use Photoshop or XnView to export the textures as **PNG or JPG.** |

* Download XnView: <https://www.xnview.com/en/xnviewmp/#downloads>
* File → Open (original image) → File → Export / Save As → select PNG or JPG

**Texture Size and Compression**

* Kivicube platform models must use textures with a maximum resolution of 2048, and we strongly recommend using power-of-two square textures, such as:\
  2×2, 4×4, 8×8, 16×16, 32×32, 64×64, 128×128, 256×256, 512×512, 1024×1024, 2048×2048.
* **Choose Appropriate Texture Sizes:** To maintain model quality while optimizing performance, use the smallest possible texture size that still provides acceptable visual results. In special cases, you may choose a larger base color texture, while keeping other texture maps smaller.
* All texture files should be compressed using tools such as [ImageOptim](https://imageoptim.com/), etc.\
  • We recommend a default compression quality of 90%.\
  • If the visual result is still good, you may try lowering the quality to 80%.\
  • Do not reduce quality below 80%.
* Normal maps are usually in PNG format and may remain large even after compression. You may try converting them to JPG for smaller file size.\
  Note: JPG normal maps can easily degrade in quality :  choose an appropriate compression level.
* Use the "Optimize Model" Feature

<figure><img src="https://1498491008-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MEaYmgB-urx5wwuYcCa%2Fuploads%2FiSzeljpp3c2PpHaXtv0r%2Fimage.png?alt=media&#x26;token=bf222d36-e441-4499-b0ed-9d73e00fa576" alt=""><figcaption></figcaption></figure>

## FAQ

<table data-header-hidden><thead><tr><th width="68.1875" align="center"></th><th></th></tr></thead><tbody><tr><td align="center"><strong>Q</strong></td><td><strong>The bounding box does not fit the model</strong></td></tr><tr><td align="center"><strong>A</strong></td><td><p><strong>Symptom:</strong></p><p>After importing the model into the Content Editor, the model’s position does not match the bounding box.<br></p><p>This is caused by bounding box alignment issues. We recommend adjusting the bounding box directly in your modeling software.</p><p></p><p>If the model is only intended for use on the platform, you can use our model compression tool to correct the issue.</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="66.6953125" align="center"></th><th></th></tr></thead><tbody><tr><td align="center"><strong>Q</strong></td><td><strong>The Content Editor shows a popup message: “imageLoader onimageError”</strong></td></tr><tr><td align="center"><strong>A</strong></td><td>Refer to “Texture size limit / Unsupported texture formats.” If the texture size is too large, please compress it.</td></tr></tbody></table>
