Jewel Renderer マニュアル -リファレンス-

Jewel Renderer マニュアル -リファレンス-

 

プロパティ

Color

材質内部の色です。

光が内部を通過した距離に応じて元の色に乗算されます。

Alphaは色の「濃さ」を表します。
Alpha=0のとき、無色透明となります。

 

MaxReflectionCount

内部で光を反射させる最大回数です。

1~20が有効な値です。

GPU負荷に影響があります。

 

Environment

反射光 / 透過光の色をサンプルするためのCubeMapです。

外環境となるべく近似するものが好ましいです。

 

Refractive Index

物質の屈折率です。

光が物体に出入りする際にどの程度方向を変えるかを表します。

空気:1.0

水:1.3

ダイヤモンド:2.4

くらいの値です。

 

Base Reflection

垂直な入射光が反射される割合です。

 

Prism

チェック時、光がR/G/Bで構成されると仮定しそれぞれ異なる屈折率で軌跡のシミュレーションを行います。

GPUへの負荷が3倍近い値になります。

 

MergeSimilarPlanes (ver 1.01~)

チェック時(デフォルト)、同一平面上のトライアングル(クアッド)をまとめて処理することで高速化を行います。

 

AutoCaptureEnvironment (ver1.02~)

チェック時(デフォルトではOff)、Update毎にキャプチャーを行います。

これは負荷の高い処理です(負荷はキャプチャー解像度に依存します)。

キャプチャーの解像度はCaptureEnvironmentSizeによります。

 

CaptureEnvironmentOnSetup (ver1.02~)

チェック時(デフォルトではOff)、Setupの際にキャプチャーを行います。

このとき、Cubemapを準備する必要がありません。

キャプチャーの解像度はCaptureEnvironmentSizeによります。

 

CaptureEnvironmentSize (ver1.02~)

キャプチャーの解像度を指定します。

2のべき乗(256, 512, 1024など)が好ましいとされています。

解像度が低いほど高速にキャプチャーできます。

 

Functions

Setup()

それぞれのプロパティをマテリアルに反映させます。

この機能はコンテキストメニューで使用できます : 

歯車ボタン->"Setup"

 

ApplyNumericParameters()

数値系のプロパティのみをマテリアルに反映させます。

Setup()に比べて低負荷です。

Mesh (MeshFilterコンポーネントの設定) や prism プロパティを変更した場合、

Setup()を使う必要があります。

この機能はコンテキストメニューで使用できます : 

歯車ボタン->"Setup"

 

Jewel Renderer マニュアル

Jewel Renderer マニュアル

 

ストア URL :

https://www.assetstore.unity3d.com/#!/content/110586

 

サポート:

mail : nkdtr2011@gmail.com

 

What's New

2018/3/6

Ver 1.02 released

- Cubemapをキャプチャーでまかなうオプションを追加しました。

 

2018/3/1

Ver1.01 released

- 最適化オプション(MergeSimilarPlanes)導入、デフォルトでON

 

 

概要

youtu.be

Jewel Renderer は凸型メッシュ内部での反射をシミュレートします。

透明な物体、特に宝石類のレンダリングに適します。

  • テクスチャの準備は不要です
  • シンプルな形状のメッシュからリッチなレンダリング結果が得られます
  • Windows/Mac/iOS/Android 対応
    (Mobileでは小さく表示しないと動作が重くなりがちです)

 

クイックスタート

youtu.be

  1. "Jewel" プレハブをシーンに配置します
  2. MeshFilter にメッシュを設定します
  3. プロパティを設定します(リファレンスを参照してください)
  4. JewelRenderer コンポーネントのメニュー -> "Setup"

※注意

動画中で背景にCubemapを適用している操作についてですが、

Unity2018以降は使えないようです。

代わりに以下の手順が必要です。

・パッケージ内にあるskybox01マテリアルを複製

・複製したマテリアルのCubemapパラメータに背景となるキューブマップを設定

・そのマテリアルをシーンへDrag&Drop

後に動画を差し替える予定です。

 

 

付属のサンプルシーン

Showcase

描画のサンプルです。

youtu.be

Parameters

パラメータによりレンダリング結果がどのように変化するかをテストできます。

youtu.be

 

リファレンス

nkdtr.hatenablog.com


 

制約・限界

推奨事項:

  • 凸型のメッシュについて最大限に対応しています。
    それ以外の形状では、「正しい」レンダリング結果が得らえません。
  • トライアングル間で頂点を共有していないメッシュが必要です。
    (Cubeのように、「角ばった」「面の平らに見える」ものがそれです)
  • メッシュの原点(0,0,0)を形状の内側に含む必要があります
  • SkyboxについてはMipMapを無効にすることをお勧めします。
    これには、テクスチャのプロパティグリッドで"Generate Mip Maps"チェックを外し"Apply"ボタンを押します。

パフォーマンス:

  • GPUにそれなりの負荷がかかります。
    最大のクオリティでリアルタイム描画するにはハイスペックなPCが必要でしょう。
    負荷の高さは反射回数(設定可能)、描画されるピクセル数、メッシュのトライアングル数、"prism"オプション それぞれに大きく依存します。

 

 

Jewel Renderer Manual

Jewel Renderer Manual 

 

Store URL :

https://www.assetstore.unity3d.com/#!/content/110586

 

Support :

mail : nkdtr2011@gmail.com

 

What's New

2018/3/6

Version 1.02 released

- Added option to capture cubemap.

 

2018/3/1

Version 1.01 released

- Added optimization option "MergeSimilarPlanes"

 

What is this?

youtu.be

Jewel Renderer simulates reflection of ray inside convex bodies.

Good for rendering transparent objects, especially gems.

  • No texture required
  • Rich-looking rendering result using simple mesh
  • Runs on Windows/Mac/iOS/Android
    (although it is heavy for mobiles to render widely)

 

Quick start

youtu.be

  1. Put "Jewel" prefab onto your scene
  2. Set your mesh in MeshFilter component
  3. Modify properties (see reference page for details)
  4. Component menu -> "Setup"

Caution : 

Setting background cubemap by Drag&Drop (as done in the movie) seems to be invalid in Unity2018 and later.

Following operation is available instead.

- duplicate "skybox01" material in the package

- set "Cubemap" parameter of the material

- Drag&Drop it into your scene

The movie will be replaced.

 

Sample scenes

Showcase

Sample jewels.

youtu.be

Parameters

Shows how the rendering result changes by parameters.

youtu.be

 

Reference

nkdtr.hatenablog.com

 

Limitations

Recommended:

  • Only convex shapes are fully supported.
    Although you can input non-convex one, the result will be incorrect.
  • Vertices should not be shared by multiple triangles.
    ("Edged," "flat-surfaced" model)
  • Origin (0,0,0) of mesh should be inside the shape.
  • Skyboxes should not include Mip-maps.
    Uncheck "Generate Mip Maps" in the texture's property grid and "Apply".

Performance:

  • Requires considerable GPU cycles, depending on reflection count (configurable) and number of rendered pixels, number of triangles in the mesh and "prism" option.
    To render in best quality, high-spec PC will be required.

 

 

Jewel Renderer Manual - Reference -

Jewel Renderer Manual - Reference -

 

Properties

Color

Internal color of the material.

This color is multiplied to the light color, with power incluenced by the distance it has proceeded through in the jewel.

Alpha element corresponds to the density.

Alpha=0 means it is clear and colorless.

 

MaxReflectionCount

Maximum number that light can reflect in the jewel.

Valid number for this property is 1 to 20.

 

Environment

Cubemap texture to sample reflection/refraction color from.

 

Refractive Index

Refractive index of the jewel body.

 

Base Reflection

Reflection rate for vertically incoming light.

 

Prism

If checked, light is separated into R, G and B with different refraction indices.

Costs almost x3 GPU cycles.

 

MergeSimilarPlanes (ver 1.01~)

If checked, triangles on the same plane are processed at once (faster).

 

AutoCaptureEnvironment (ver1.02~)

If checked, environment cubemap is captured every frame.

This is high-cost process depending on capture resolution.

Capture resolution is set by property "CaptureEnvironmentSize."

 

 

CaptureEnvironmentOnSetup (ver1.02~)

If checked, environemnt cubemap is captured on "Setup."

By this, you don't need to prepare Cubemap as an asset.

Capture resolution is set by property "CaptureEnvironmentSize."

 

CaptureEnvironmentSize (ver1.02~)

Resolution of captured environment.

Power of 2 is said to be good.

Lower resolution makes capturing quicker.

 

Functions

Setup()

Setup material reflecting each properties.

This function is exposed to the context menu : 

click component's gear button->"Setup" to invoke.

 

ApplyNumericParameters()

Apply numeric parameters on the material.

If mesh (in MeshFilter component) or prism property,

you should use "Setup()" instead.

This function is exposed to the context menu : 

click component's gear button->"ApplyNumericParameters" to invoke.

 

Kaleidoscope 2D/3D マニュアル

f:id:nkdtr:20170203133811p:plain

 

Kaleidoscope 2D/3D マニュアル

バージョン情報

1.05

- バグ修正:ハンドルを用いて変更した情報が保存されない

1.04

- 機能追加:テクスチャ出力

- 機能追加:テクスチャオフセット

1.03

- 機能追加:テクスチャ自動スクロール

1.02

- 誤植修正

1.01

- 初期版リリース

 

サンプル動画

 

youtu.be

 

機能リスト

  • 3面の鏡による反射を計算し、万華鏡をシミュレートします
  • 2D/3Dバージョンがあります
  • コンフィグ可能
    - 反射ごとの明るさ減衰率
    - 鏡の配置(3角形の頂点を指定)
    - テクスチャパターン
      -- RenderTextureも使えます
  • PNG出力(

    https://youtu.be/FI3xuAeAnws

    )

 

ストア 

Asset Store

 

使い方

-2D

youtu.be

  • KaleidoscopeQuad をシーンに配置します
  • ハンドルを使って三角形の形状を調整します
  • テクスチャを差し替えます

-3D

youtu.be

  • Kaleidoscope3D をシーンに配置します
  • ハンドルを使って三角形の形状を調整します
  • テクスチャを差し替えます

 

API

メソッド

SetTexture(Texture)

-テクスチャを差し替えます

 

ApplyTriangleToParam

-変更したプロパティをマテリアルに反映させます

-実行時にプロパティを変動させる場合に使用します

 

プロパティ

Reflectance

-鏡面の反射率 ([0.0 1.0]の範囲を想定)

-反射ごとにピクセルの明るさに乗算されます

  1.0より小さい値のとき、周辺部に行くほど暗く表示されることになります。

 

TextureScroll (ver 1.03 ~)

-自動的にテクスチャをスクロールします。

 単純なパターンからアニメーションが生成されます。

 

TextureOffset (ver 1.04 ~)

-TextureScrollに似ていますが、こちらは自動的にはスクロールしません。

-スクロールの速度、向きを動的に制御したい場合はこちらを使用してください。

 

OutputDirectory (ver 1.04 ~)

OutputFileNameBase

-テクスチャ出力に用いるディレクトリ及びファイル名のベースです。

 実際の出力時にはファイル名に番号が付加されます。 

 

 

 

 

Kaleidoscope 2D/3D Manual

f:id:nkdtr:20170203133811p:plain

 

Kaleidoscope 2D/3D Manual

Updates

1.05

- bugfix : triangle modification not saved if it was done by handles

1.04

- new feature : texture baking

- new feature : texture offset

1.03

- new feature : texture scroll

1.02

- fixed typo

1.01

- released

 

Sample Video

 

youtu.be

 

Features

  • Simulates kaleidoscope with 3 mirrors via simple optical calculation
  • 2D / 3D versions available
  • Configurable
    - Attenuation rate per reflection
    - Layout of mirrors (vertices of the triangle constructed by mirrors)
    - Source texture pattern
      -- Also Nice with RenderTextures
  • Exporting as png image file(

    https://youtu.be/FI3xuAeAnws

    )

Store 

Asset Store

 

How to Use

-2D

youtu.be

  • Place KaleidoscopeQuad prefab on your scene
  • Modify the shape of triangle by the position handle (consists of three-arrows)
  • Replace the texture of the material

-3D

youtu.be

  • Place Kaleidoscope3D prefab on your scene
  • Modify the shape of triangle by the position handle
  • Replace the texture of the material

 

APIs

Methods

SetTexture(Texture)

-Replaces the texture to sample from

 

ApplyTriangleToParam

-Updates material parameter by triangle modified in editor

-Used for applying dynamically modified properties

 

Properties

Reflectance

-Reflectance of mirrors (expecting value in range of [0.0 1.0])

-This value is multiplied on the sampled color at every reflection.

  So the edge part of resulting material will be darker than center if reflectance is less than 1.0.

 

TextureScroll (ver 1.03 ~)

-Automatically scrolls the texture, changing simple pattern into complex animation.

 

TextureOffset (ver 1.04 ~)

-Similar to TextureScroll, but this doesn't cause automatic scroll.

-Better if you want to control the scroll speed dynamically.

 

OutputDirectory (ver 1.04 ~)

OutputFileNameBase

-For texture baking; defining the name and directory of created image file.