Beauty Salon α-BET (alphabet)

space001
Blender3d Collada dae modeling Use Papervision3d on Progression3 and 4 http://a-bet.secret.jp/#/access
more whaison works.
whaison space
space002
http://whaison.jugem.jp/ https://jp.pinterest.com/whaison/ https://www.instagram.com/whaison/ https://whaison.amebaownd.com/
https://suzuri.jp/whaison
http://whaison.blogspot.com/
http://whaison.tumblr.com/ http://qiita.com/users/whaison http://www.behance.net/whaison https://github.com/whaison/ https://bitbucket.org/whaison http://serato.com/user/whaison http://whaison.hatenablog.jp/

typo memo
http://d.hatena.ne.jp/whaison/


dayNote
http://www.myspace.com/whaison http://ameblo.jp/whaison/ http://blog.crooz.jp/whaison/ http://blog.crooz.jp/whaisoncafe/ http://nenpyo.org/whaison

fulldisk
http://full.shin-gen.jp/
http://whaison.client.jp/
http://www.dclog.jp/whaison/
featured forums.
space004
forum.unity3d.com/

forums.unrealengine.com.

Progression Forum.

FlashDevelop Forum.

Papervision3D Forum.

FlexUserGroup Forum.

SparkProjectForum.





Twitter







Mobile
qrcode
Calendar
SunMonTueWedThuFriSat
 123456
78910111213
14151617181920
21222324252627
28293031   
<< October 2018 >>
New Entries
Archives
Categories
Recent comment
  • FlashDevelopでフォント埋め込み
    感謝!! (12/24)
  • cocos2d-x-3.0rc0 ,c++ ,cpp でTexturePacker で 吐き出した、plist と png でパラパラアニメーションのコード例
    whaison (04/17)
  • Blender2.67にbvh(web上に2500個以上ころがってる)入れてそのBoneオブジェクトをUnity4.0のmecanimで使う
    whaison (08/19)
  • Apple Dev Center 「Certificates, Identifiers & Profiles」で Adhoc をつくってXCode4.6.1でArchiveしてipaを書き出し
    whaison (04/30)
  • Flash CS6でプロパティーパネルで物理演算のジャンプの高さを設定できるCitrus Engine
    whaison (03/01)
  • 「Flash以外、例えばKinectとか」ON TOKYO (会場:高田馬場4-11-8 Floor 6階 ) 短縮URL http://bit.ly/dI0Bfx
    uka (03/02)
  • App Store Review Guidelines アップル社のアプリ審査基準ガイドライン和訳 Apple が 開発者を悩ませ ユーザーをハッピーにしたいガイドライン。w
    whaison (01/25)
  • Unity3d では ADOBE JAPAN OSAKIで行われたFITC 2010 TOKYOでは、 「iOS用にパブリッシュするためには、フリー版ではなくて、有料版を買ってください。さらに追加のパッケージである、"iOS Package (for Development)"を買ってください」とのことだった。
    whaison (01/25)
  • enjoy Adidas-Futsal-Park
    whaison (01/16)
  • MacBookAir にFlashPlayer入れたらなった。Mac Flash Player 10.1/10.2でUstream などでカメラが認識されないバグそんなときはUstreamProducer!でもなくiPhoneだと直ぐにライブ配信できた
    whaison (01/14)
simple sintax high lighter2.0
space003
SyntaxHighlighter2.0用 の貼り付けコード作成する!
Profile
Links
Recommend
Admin
無料ブログ作成サービス JUGEM
Seach this site
            
2017.03.16 Thursday
Unity 5.6b https://docs.unity3d.com/560/Documentation/Manual/class-QualitySettings.html の 日本語 翻訳 結果

 

Quality Settings

SWITCH TO SCRIPTING

Unity allows you to set the level of graphical quality it will attempt to render. Generally speaking, quality comes at the expense of framerate and so it may be best not to aim for the highest quality on mobile devices or older hardware since it will have a detrimental effect on gameplay. The Quality Settings inspector (menu: Edit > Project Settings > Quality) is used to select the quality level in the editor for the chosen device. It is split into two main areas - at the top, there is the following matrix:

Unity lets you assign a name to a given combination of quality options for easy reference.

 

の日本語 翻訳

 

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Quality Settings(品質設定)

スクリプトに切り替える

Unityでは、レンダリングしようとするグラフィカルな品質のレベルを設定できます。一般的に言えば、品質はフレームレートを犠牲にしてくるため、モバイルデバイスや古いハードウェアで最高の品質を目指すのは、ゲームプレイに悪影響を及ぼします。品質設定インスペクター(メニュー:[編集]> [プロジェクト設定>品質は)選択したデバイス用のエディタの品質レベルを選択するために使用されます。それは2つの主要な領域に分割されています - 上部には、以下のマトリックスがあります:

Unityでは、簡単に参照できるように、品質オプションの所定の組み合わせに名前を割り当てることができます。マトリックスの行は、各品質レベルが適用される異なるプラットフォームのどれを選択するかを決定します。行列の一番下にあるDefault行は品質レベルではなく、各プラットフォームで使用されるデフォルトの品質レベルを設定します(列の緑色のチェックボックスは、そのプラットフォームで現在選択されているレベルを示します)。Unityには6つの品質レベルが事前に設定されていますが、マトリックスの下にあるボタンを使用して独自のレベルを追加できます。ごみ箱のアイコン(右端の列)を使用して、不要な品質レベルを削除することができます。

品質レベルの名前をクリックすると、編集用に選択できます。設定は、設定マトリックスの下のパネルで行います。

品質レベルで選択できる品質オプションは次のとおりです。

プロパティ: 関数:
この品質レベルを参照するために使用される名前

レンダリング

プロパティ: 関数:
ピクセルライトカウント 前方レンダリングを使用する場合のピクセルライトの最大数。
テクスチャ品質 これにより、テクスチャを最大解像度で表示するのか、その一部で表示するのかを選択できます(解像度が低いほど処理オーバーヘッドが少なくなります)。オプションはFull ResHalf ResQuarter ResEighth Resです。
異方性テクスチャ これは、異方性テクスチャが使用されるかどうか、またどのように使用されるかを可能にする。オプションは、Disabled(無効)パーテクスチャ強制的にオン(すなわち、常に有効)。
アンチエイリアシング これは、使用されるアンチエイリアスのレベルを設定します。オプションは、2倍4倍8倍のマルチサンプリングです。
ソフトパーティクル パーティクルにソフトブレンドを使用する必要がありますか?
リアルタイム反射プローブ ゲーム中に反射プローブを更新する必要がありますか?

プロパティ: 関数:
これにより、どのタイプのシャドウを使用すべきかが決まります。使用できるオプションは、ハードおよびソフトシャドウハードシャドウのみ、およびシャドウ無効にするオプションです。
影の解像度 シャドウは、非常に高解像度のさまざまな解像度でレンダリングできます。解像度が高いほど、処理オーバーヘッドが大きくなります。
陰影投影 指向性のある光から影を投影するには、2つの異なる方法があります。Close Fitは、より高解像度の影をレンダリングしますが、カメラが動いてもわずかに揺れることがあります。Stable Fitは解像度の低いシャドウをレンダリングしますが、カメラの動きでは揺れません。
影のカスケード シャドウカスケードの数は、ゼロ、2または4に設定できます。カスケードの数が多いほど品質は向上しますが、処理オーバーヘッドが発生します(詳細は方向性ライトシャドウを参照)。
影の距離 シャドウが表示されるカメラからの最大距離。この距離を越える影はレンダリングされません。
シャドウ近平面オフセット シャドーパンケーキによって歪んだ大きな三角形を考慮に入れて面の近くに影を付ける。

その他

プロパティ 関数:
ブレンドウェイト アニメーション中に特定の頂点に影響を与える可能性があるボーンの数。使用可能なオプションは、1つ、2つまたは4つのボーンです。
VSyncカウント レンダリングは、ディスプレイデバイスのリフレッシュレートと同期させることができ、アーチファクトが「引き裂かれる」のを防ぎます(下記参照)。すべての垂直ブランク(VBlank)、2番目の垂直ブランクごとに同期するか、まったく同期しないかを選択できます。
LODバイアス LODレベルは、オブジェクトのオンスクリーンサイズに基づいて選択されます。サイズが2つのLODレベルの間にある場合、その選択肢は、利用可能な2つのモデルの詳細でない、またはより詳細に偏っている可能性があります。これは0から+無限大までの小数部として設定されます。0と1の間に設定すると、ディテールが少なくなります。1より大きい設定はより詳細に有利です。たとえば、LODバイアスを2に設定し、50%の距離で変化させると、LODは実際には25%だけ変化します。
最大LODレベル ゲームで使用される最高のLOD。詳細については、下記の注記を参照してください。
パーティクルレイキャスト予算 近似パーティクルシステムの衝突に使用するレイキャストの最大数(品質または品質のレイキャスト)。パーティクルシステムの衝突モジュールを参照してください
非同期アップロードタイムスライス バッファされたテクスチャをGPUにアップロードするのに費やす1フレームあたりのCPU時間(ミリ秒単位)。非同期テクスチャアップロードを参照してください
非同期アップロードバッファサイズ 非同期アップロードバッファのサイズ(MB単位)。非同期テクスチャアップロードを参照してください

最大LODレベル

MaximumLODレベルを下回るLODを持つモデルは、使用されず、ビルドから除外されます(これにより、ストレージとメモリスペースが節約されます)。Unityは、ターゲットプラットフォームの品質設定にリンクされているすべてのMaximumLOD値から最小のLOD値を使用します。LODレベルが含まれている場合、そのLODGroupのモデルはビルドに含まれ、使用されている品質設定に関係なく、そのLODGroupの実行時に常にロードされます。例として、LODレベル0が任意の品質設定で使用される場合、すべてのLODレベルがビルドに含まれ、実行時にロードされたすべての参照モデルが含まれます。

引き裂く

表示デバイス上の画像は継続的に更新されるのではなく、Unityのフレーム更新のような定期的な間隔で更新が行われます。しかし、Unityのアップデートは必ずしもディスプレイのアップデートと同期されているわけではないので、Unityが新しいフレームを発行する可能性があります。これにより、フレームの変化が起こる画面上の位置に「引き裂き」と呼ばれる視覚的なアーティファクトが生じる。

模倣した引き裂きの例。 拡大部分では、画像のシフトがはっきりと見えます。
模倣した引き裂きの例。拡大部分では、画像のシフトがはっきりと見えます。

ディスプレイデバイスが更新されていない期間、いわゆる "垂直ブランク"の間だけフレームを切り替えるようにUnityを設定することは可能です。品質設定のVSyncオプションは、フレームのスイッチをデバイスの垂直ブランクまたは任意の垂直垂直ブランクと同期させます。後者は、ゲームがフレームのレンダリングを完了するために複数のデバイス更新を必要とする場合に有用であり得る。

アンチエイリアシング

アンチエイリアシングはポリゴンのエッジの外観を改善します。したがって、それらは「ギザギザ」ではなく、画面上で滑らかになります。しかし、それはグラフィックスカードのパフォーマンスコストを招き、より多くのビデオメモリを使用します(ただし、CPUにはコストはかかりません)。アンチエイリアシングのレベルは、ポリゴンのエッジがどれほど滑らかであるか(およびビデオメモリが消費する量)を決定します。

アンチエイリアスがなければ、ポリゴンのエッジはギザギザになります。
アンチエイリアシングなしでは、ポリゴンのエッジは「ギザギザ」です。
4倍のアンチエイリアスでは、ポリゴンの端が滑らかになります。
4倍のアンチエイリアスでは、ポリゴンの端が滑らかになります。

ただし、組み込みのハードウェアアンチエイリアスは、遅延シェーディングまたはHDRレンダリングでは機能しませんこれらの場合、アンチエイリアスイメージエフェクトを使用する必要があります。

ソフトパーティクル

ソフトパーティクルは、他のシーンジオメトリとの交差点の近くでフェードアウトします。これははるかに良く見えますが、(複雑なピクセルシェーダ)計算するのがより高価で、深度テクスチャをサポートするプラットフォームでのみ動作します。さらに、Deferred ShadingまたはLegacy Deferred Lightingレンダリングパスを使用するか、カメラがスクリプトからデプステクスチャレンダリングするようにする必要があります。

柔らかい粒子なし - シーンとの目に見える交差点。
柔らかい粒子なし - シーンとの目に見える交差点。
Soft Particlesでは交差点がスムーズにフェードアウトします。
Soft Particlesでは交差点がスムーズにフェードアウトします。

__Splash Screen__

[BETA *]グラフィック設定

ここに記載されているものが期待どおりに機能していないのですか?それは既知の問題かもしれませんissuetracker.unity3d.comの Issue Trackerで確認してください

著作権©2017 Unity Technologies。出版物5.6b-001D

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 以下 英語 原文  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

Quality Settings

SWITCH TO SCRIPTING

Unity allows you to set the level of graphical quality it will attempt to render. Generally speaking, quality comes at the expense of framerate and so it may be best not to aim for the highest quality on mobile devices or older hardware since it will have a detrimental effect on gameplay. The Quality Settings inspector (menu: Edit > Project Settings > Quality) is used to select the quality level in the editor for the chosen device. It is split into two main areas - at the top, there is the following matrix:

Unity lets you assign a name to a given combination of quality options for easy reference. The rows of the matrix let you choose which of the different platforms each quality level will apply to. The Default row at the bottom of the matrix is not a quality level in itself but rather sets the default quality level used for each platform (a green checkbox in a column denotes the level currently chosen for that platform). Unity comes with six quality levels pre-enabled but you can add your own levels using the button below the matrix. You can use the trashcan icon (the rightmost column) to delete an unwanted quality level.

You can click on the name of a quality level to select it for editing, which is done in the panel below the settings matrix:

The quality options you can choose for a quality level are as follows:

Property: Function:
Name The name that will be used to refer to this quality level

Rendering:

Property: Function:
Pixel Light Count The maximum number of pixel lights when Forward Rendering is used.
Texture Quality This lets you choose whether to display textures at maximum resolution or at a fraction of this (lower resolution has less processing overhead). The options are Full ResHalf ResQuarter Res and Eighth Res.
Anisotropic Textures This enables if and how anisotropic textures will be used. The options are DisabledPer Texture and Forced On (ie, always enabled).
AntiAliasing This sets the level of antialiasing that will be used. The options are 2x4x and 8x multi-sampling.
Soft Particles Should soft blending be used for particles?
Realtime Reflection Probes Should reflection probes be updated during gameplay?

Shadows:

Property: Function:
Shadows This determines which type of shadows should be used. The available options are Hard and Soft ShadowsHard Shadows Only and Disable Shadows.
Shadow resolution Shadows can be rendered at several different resolutions: LowMediumHigh and Very High. The higher the resolution, the greater the processing overhead.
Shadow Projection There are two different methods for projecting shadows from a directional light. Close Fit renders higher resolution shadows but they can sometimes wobble slightly if the camera moves. Stable Fit renders lower resolution shadows but they don’t wobble with camera movements.
Shadow Cascades The number of shadow cascades can be set to zero, two or four. A higher number of cascades gives better quality but at the expense of processing overhead (see Directional Light Shadows for further details).
Shadow Distance The maximum distance from camera at which shadows will be visible. Shadows that fall beyond this distance will not be rendered.
Shadow Near Plane Offset Offset shadow near plane to account for large triangles being distorted by shadow pancaking.

Other:

Property: Function:
Blend Weights The number of bones that can affect a given vertex during an animation. The available options are one, two or four bones.
VSync Count Rendering can be synchronised with the refresh rate of the display device to avoid “tearing” artifacts (see below). You can choose to synchronise with every vertical blank (VBlank), every second vertical blank or not to synchronise at all.
LOD Bias LOD levels are chosen based on the onscreen size of an object. When the size is between two LOD levels, the choice can be biased toward the less detailed or more detailed of the two models available. This is set as a fraction from 0 to +infinity. When it is set between 0 and 1 it favors less detail. A setting of more than 1 favors greater detail. For example, setting LOD Bias to 2 and having it change at 50% distance, LOD actually only changes on 25%.
Maximum LOD Level The highest LOD that will be used by the game. See note below for more Information.
Particle Raycast Budget The maximum number of raycasts to use for approximate particle system collisions (those with Medium or Low quality). See Particle System Collision Module.
Async Upload Time Slice The amount of CPU time in milliseconds per frame to spend uploading buffered textures to the GPU. See Async Texture Upload.
Async Upload Buffer Size The size in MB for the Async Upload buffer. See Async Texture Upload.

MaximumLOD level

Models which have a LOD below the MaximumLOD level will not be used and omitted from the build (which will save storage and memory space). Unity will use the smallest LOD value from all the MaximumLOD values linked with the quality settings for the target platform. If an LOD level is included then models from that LODGroup will be included in the build and always loaded at runtime for that LODGroup, regardless of the quality setting being used. As an example, if LOD level 0 is used in any quality setting then all the LOD levels will be included in the build and all the referenced models loaded at runtime.

Tearing

The picture on the display device is not continuously updated but rather the updates happen at regular intervals much like frame updates in Unity. However, Unity’s updates are not necessarily synchronised with those of the display, so it is possible for Unity to issue a new frame while the display is still rendering the previous one. This will result in a visual artifact called “tearing” at the position onscreen where the frame change occurs.

Simulated example of tearing. The shift in the picture is clearly visible in the magnified portion.
Simulated example of tearing. The shift in the picture is clearly visible in the magnified portion.

It is possible to set Unity to switch frames only during the period where the display device is not updating, the so-called “vertical blank”. The VSync option on the Quality Settings synchronises frame switches with the device’s vertical blank or optionally with every other vertical blank. The latter may be useful if the game requires more than one device update to complete the rendering of a frame.

Anti-aliasing

Anti aliasing improves the appearance of polygon edges, so they are not “jagged”, but smoothed out on the screen. However, it incurs a performance cost for the graphics card and uses more video memory (there’s no cost on the CPU though). The level of anti-aliasing determines how smooth polygon edges are (and how much video memory does it consume).

Without anti-aliasing, polygon edges are jagged.
Without anti-aliasing, polygon edges are “jagged”.
With 4x anti-aliasing, polygon edges are smoothed out.
With 4x anti-aliasing, polygon edges are smoothed out.

However, built-in hardware anti-aliasing does not work with Deferred Shading or HDR rendering; for these cases you’ll need to use Antialiasing Image Effect.

Soft Particles

Soft Particles fade out near intersections with other scene geometry. This looks much nicer, however it’s more expensive to compute (more complex pixel shaders), and only works on platforms that support depth textures. Furthermore, you have to use Deferred Shading or Legacy Deferred Lighting rendering path, or make the camera render depth textures from scripts.

Without Soft Particles - visible intersections with the scene.
Without Soft Particles - visible intersections with the scene.
With Soft Particles - intersections fade out smoothly.
With Soft Particles - intersections fade out smoothly.

[BETA*] Graphics Settings

Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.

Copyright © 2017 Unity Technologies. Publication 5.6b-001D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

| whaison | Unity3d | 20:08 | comments(0) | - | pookmark |
            
2017.02.04 Saturday
Unityのマルチスレッドとマルチスレッドの理解 の 翻訳

中国のシーナさんのブログ (2014年11月16日午前0時07分23秒)

http://blog.sina.com.cn/s/blog_930ffa0b0102v4f0.html

Unityのマルチスレッドとマルチスレッドの理解 の 翻訳 中国語の文章の 翻訳結果が日本語になってない。またこんど

 

==================再現アドレス=============================
再版Xiaokeの翻訳で中国語の翻訳アドレス、vr.cn:http://blog.1vr.cn/?p=624
英語元のアドレス、外国人のブログには、壁の上に開けないでください。: http://unitygems.com/threads/

 

 

https://unitygem.wordpress.com/​​
==================再現アドレス=============================

================================================= ========= 
ABMEXパンチを再現
「Unity3D「チュートリアル・カレッジ「ユニティ」マルチスレッドの制限

http://blog.sina.com.cn/s/blog_930ffa0b0102v9ll.html 
=========== =============================================== 

=== ================================================== =====

マルチスレッドの非同期のC#のhttp unity3d機能の使用ダウンロードリソース

http://www.cnblogs.com/U-tansuo/p/unity3d_Threading_AsyDown_HTTP.html#undefined 
============================= ============================= 

===================== ===================================== 
マルチスレッドプラグインで共有U3Dの使用:
LOOMマルチスレッド:http://www.u3dchina.com/t-6357-1-1.html

UniExten 2.14:http://www.u3dchina.com/t-6300-1-1.html

================================================== ========
 

あなたがゲーム内で複数のスレッドを使用する場合は、

 

この記事をお読みください、

スレッドは非常に複雑なトピックですが、

 

あなたはそれを習得場合は、

簡単に複数のハードウェアプロセッサを使用することができたり、

処理、管理を分割することは困難ですデータ・ブロック。

 

大量のデータを計算するために、A *アルゴリズムとのシーンのように。


変形グリッド多数の頂点を操作してください。


サーバーにデータをアップロードするために実行し続けた。
次元コード認識や他の画像処理。

この場合は、同時にあなたは多くのことやユニティに対処する必要が小さなオブジェクトは、

そうでなければコルーチン、スレッドと対話することができます

 

スレッドは、

プログラム内の他のスレッド並行して実行されている。

マルチプロセッサコンピュータでは、

同時に複数のスレッドを

複数のスレッドを実行することができ、

 

より多くの処理コアをに依存しています。

 

Unityのプログラムは、

あなたのコードを実行するために、メインスレッドが常にあるときは、

追加のスレッドを作成することができ、 メインスレッドは同時に実行されています。

メインスレッドのUnityコンポーネント、オブジェクト、およびUnityシステムからのアクセスのみを呼び出すとUnityは、

あなたが第二のスレッドでこれらの項目にアクセスしようとすると失敗し、

エラーがスローされますすることができます

これは真剣に制限です。

あなたがコードを書くときに、

あなたが関数を開始した後にreturnして、それはあなたが同じことを実行し、

別の関数を実行することをポイントに到達したと思いますが、あなたがコードを実装することを決定し、

対応するオペレーティングシステムを変更しませんでしたいつでもあなたのコードだけ一時的に「スリープ」出て、その後、他のコードが実行されてみましょう、

この例では、値がCPUにロードされる最初のスレッドが1000を引いAの値とを読み取るために第2のスレッド後に中断1を準備するために登録し、その後、-950である必要があります。今最初のスレッドが再開され、それは50 + 1がAに格納されているレジスタになり、51になった、と-950は失われています。

基本的に、あなたが起こらないことを確実にするために、多くの予防策を取るために、変数やメモリにアクセスする複数のスレッドを同時に使用する場合。

だから、Unityは、ちょうどすべてのシステムを回避するために、有効ではありません別のスレッドやメモリからこれらの変数にアクセスすることを決定し、フレームワークは、問題オブジェクト。

だからために1つのスレッドのみ変数を変更することを確認してください、これはあなたが動作するように複数のスレッドを使用することはできませんという意味ではありません、あなたがこの問題を解決するために、「並び替え」を使用することができます。

彼らは、オブジェクトがロック型値(値型)またはプロトタイプ(原始的)であると言うことができないため、1つのスレッドだけここで一定時間内に特定のオブジェクトにアクセスできることを確実にするためにC#のlockキーワードがあります。

-----------------------------------------

int a = 50;

)object guard = new object();

void ThreadOneCode()
{
//この中でいくつかのコード

lock(guard)
{
a = a + 1;
}

//このの残りの部分でいくつかのコード

}

void ThreadTwoCode()
{
//この中でいくつかのコード

lock(guard)
{
a = a - 1000;
}

//この残りの部分でいくつかのコード

}

-----------------------------------------
すべてはそれがガードを介してアクセスされると同時に1つだけのスレッドを保証するために、ガードにロックされている。あなたは、任意の適切なオブジェクトを使用することができます。

今、あなたは、さまざまな問題を有していてもよく、例えば、あなたが相互に入れ子にすることができる複数の事をロックする。その後、我々はどのように行うのですか?

あなたは簡単に別のスレッドでコードを実行することができるように、我々は、このクラスの織機を呼び出します

注意すべき2つの特徴があります。

RunAsync(アクション) -別のスレッド上で実行されるコードのセット。
QueueOnMainThread(アクション、[オプション]フロート時間) -ステートメント(オプション遅延)のメインスレッドで実行されます。

Loom.Currentアクセスでインタラクティブなゲームのメインスレッドに対処するための目に見えないゲームオブジェクトを作成しLoom-。

次の例では、乗算結果の頂点のすべてを更新するために、グリッド織機を使用しています。

 

-------------------------------------------------2

//第二のスレッドでScaleグリッド
void ScaleMesh(Mesh mesh, float scale)
{
//メッシュの頂点を取得します。
var vertices = mesh.vertices;
//アクションで新しいスレッドを実行します。
Loom.RunAsync(()=>{
//すべての頂点を通る//ループ
for(var i = 0; i < vertices.Length; i++)
{
//頂点をスケール
vertices[i] = vertices[i] * scale;
}
//メインスレッド上のいくつかのコードの実行
//グリッドを更新します
Loom.QueueOnMainThread(()=>{
//頂点を設定します。
mesh.vertices = vertices;
//境界を再計算
mesh.RecalculateBounds();
});

---------------------------------------------------------2 end

上記の関数は、パラメータなし、動作する任意のコンテンツへノーリターン。クロージャは、アクセスパラメータと独自のクラスや関数のローカル変数である第二のスレッドで行うラムダの使用の良い例です。

あなたは)=> {...}新しいスレッドで関数内のすべてのコードを実行するためにラムダ関数を定義します(使用することができます。

私たちは、メインスレッド上のメッシュの頂点の更新を変更する必要があるので、我々は、(フレームまたは次のフレームが次の更新サイクルと呼ばれている)次の更新サイクルの実行時処理にQueueOnMainThreadを使用しています。QueueOnMainThreadもアクションへの必要性をアップデート元の頂点メッシュを更新します。

ここでは織機のコードは次のとおりです。

=====================Loom.cs=====================3========中>>日

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using UnityEngine;

public class Loom : MonoBehaviour {

    #region 公共字段

    ///1
    ///スレッドの最大数、静的なパブリックフィールド
    ///
    public static int maxThreads = 8;

    #endregion

    #region プライベートフィールド

    ///2
    /// 現在のスレッド数、プライベート静的フィールド
    ///
    private static int numThreads;

    ///
    ///シングルトン
    ///
    private static Loom _current;

    private int _count;

    ///
    /// 初期化された
    ///
    private static bool initialized;

    private List _actions;
    private List _delayed;
    private List _currentDelayed;

    ///
    /// 行動の///現在のリスト
    ///
    private List _currentActions;

    #endregion

    #region パブリックプロパティ
   
    ///
    /// 現在の織機シングルトンオブジェクト属性取得
    ///
    public static Loom Current {
        get {
            Initialize();
            return _current;
        }
    }

    #endregion

    #region Unity3d API
   
    void Awake() {
        _current = this;
        initialized = true;
        _actions = new List();
        _delayed = new List();
        _currentDelayed = new List();
        _currentActions = new List();
    }

    void Update ( ) {
        lock ( _actions ) {
            _currentActions.Clear( );
            _currentActions.AddRange(_actions);
            _actions.Clear( );
        }
        foreach ( Action a in _currentActions ) {
            a( );
        }
        lock ( _delayed ) {
            _currentDelayed.Clear( );
            _currentDelayed.AddRange(_delayed.Where(d => d.time <= Time.time));
            foreach ( var item in _currentDelayed )
                _delayed.Remove(item);
        }
        foreach ( var delayed in _currentDelayed ) {
            delayed.action( );
        }
    }

    void OnDisable ( ) {
        if ( _current == this ) {
            _current = null;
        }
    }

    #endregion Unity3d API

    ///
    /// 初期化し、新しいゲームオブジェクトを作成織機、織機やスクリプトを追加
    ///
    private static void Initialize() {
        if (!initialized) {
            if (!Application.isPlaying)
                return;
            initialized = true;
            GameObject g = new GameObject("Loom");
            _current = g.AddComponent();
        }
    }
   
    ///
    /// 遅延キューエントリ
    ///
    public struct DelayedQueueItem {
        public float time;
        public Action action;
    }   

    ///
    /// メインスレッド上///コード実行
    ///    
    public static void QueueOnMainThread(Action action) {
        QueueOnMainThread(action, 0f);
    }
    ///
    /// コードは、メインスレッド上で実行するには、2番目のパラメータはTime.timeが実行応じて、数秒の実装の遅れである
    ///   
    public static void QueueOnMainThread(Action action, float time) {
        if (time != 0) {
            lock (Current._delayed) {
                // 値が時間遅延の効果を達成するためにtime.timeを追加
                Current._delayed.Add(new DelayedQueueItem { time = Time.time + time, action = action });
            }
        } else {
            lock (Current._actions) {
                Current._actions.Add(action);
            }
        }
    }

    ///
    /// 新しいスレッドで実行するコード
    ///   
    public static Thread RunAsync(Action a) {
        Initialize();
        while (numThreads >= maxThreads) {
            Thread.Sleep(1);
        }
        Interlocked.Increment(ref numThreads);
        ThreadPool.QueueUserWorkItem(RunAction, a);
        return null;
    }

    private static void RunAction(object action) {
        try {
            ((Action)action)();
        } catch(Exception e) {
            Debug.Log(e.Message);
            Debug.Log(e.Source);
        } finally  {
            Interlocked.Decrement(ref numThreads);
        }
    }
   
}

=====================Loom.cs====================================3

UnityScriptの場合は、フォルダに織機、プラスLoom.csを使用できるように:

//第二のスレッドで// Scaleグリッド
function ScaleMesh(mesh : Mesh, scale : float)
{
//Get the vertices of a mesh
var vertices = mesh.vertices;
//アクションで新しいスレッドを実行します。
Loom.RunAsync(function() {
//すべての頂点を通る//ループ
for(var i = 0; i < vertices.Length; i++)
{
//頂点をスケール
vertices[i] = vertices[i] * scale;
}
//メインスレッド上のいくつかのコードの実行
//グリッドを更新します
Loom.QueueOnMainThread(function() {
//頂点を設定します。
mesh.vertices = vertices;
//境界を再計算
mesh.RecalculateBounds();
});

 

 

| whaison | Unity3d | 23:38 | comments(0) | - | pookmark |
            
2016.12.02 Friday
コントロール パネル¥すべてのコントロール パネル項目¥既定のプログラム¥関連付けを設定する

コントロール パネル¥すべてのコントロール パネル項目¥既定のプログラム¥関連付けを設定する

 

.mat という拡張子のファイル

 

ファイル拡張子のひも付けを変更する必要があります。

「コントロールパネル」>「プログラム」>「あるファイルの種類を特定のプログラムでオープン」と進み、.mat をダブルクリックして「ファイルを開くプログラムの選択」でMATLABに関連付けなおしてください。

なお、過去(2006年頃)の報告では、MS Officeのアップデートをすると毎回元に戻ってしまうという報告もありました↓
http://oshiete.goo.ne.jp/qa/2482223.html

ご参考になれば幸いです。

 

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1163895821

| whaison | Unity3d | 19:24 | comments(0) | - | pookmark |
            
2016.11.18 Friday
Unity道場_ShaderForge102にいったメモ


Unity道場_ShaderForge102

ノード

node
line cut ライン切る option + 右クリック
ーーー基本ーーー
Normal Dir
Light  

の内積 dot
ーーーーーーーー

ーーーーーーーー

ランバートを作って
Pongを作って
HarfLanbert作って

Toon Shader  comp

ランプシェーダ 傾斜
トューンライン1
アウトラインだけならいい。
クリエス線

トューンライン2
Unityデフォルト
イメージエフェクトでカメラ側につける
クリエス線も出る


ユニティちゃんトューンシェーダーは はダウンロード可能でShaderForgeで開けて
デザイナー用にテクスチャで調整できるようになってる。
たくさんのメリットがあるみたい。

数学 堂前さん
DirectX シェーダプログラミング 2007
本村さん
もとむらさん


本村・C・純也氏(リードモデラー兼テクニカルアーティスト)。

GUILTY GEAR Xrd -SIGN-でキャラクターモデルの制作全般やボーン&リグ設計を担当。

過去参加作品にはブレイブルーシリーズや,格闘ゲーム版のペルソナ4シリーズ,「ギルティギア2 オーヴァチュア」がある

https://www.google.co.jp/search?q=本村 トゥーンシェーダー amazon

http://www.4gamer.net/games/216/G021678/20140703095/index_2.html

https://www.amazon.co.jp/Unity 5 実践シェーダプログラミング改訂第一版-高橋-潤-ebook/dp/B01555RCGY


ライトニングトーク1
mozaiku
ponion

rotation
paneer  

rotater

blendmode 除外 一部の絵を大きく Excretion

Blend B + LMB

 

うまく使うと

ライトニングトーク2
実行時のライトベイクをシェーダーでやってみる。
Forward ライト制限
Difard  ライト重い

ユーザーが光るものを置けない

CameraのRendertype Forward Difard 切り替え

UVのテクスチャを作る。
Vert 
Frag

頂点をどうやってそこに

RenderTextture で
Model
Vertで

ライトニングトーク3
シェーダー座標系について


UE4 PostProsses
UE3のサイトで
ShaderGraphと同じ事やってます。
HLSLで出力される

Youtube UE4 8bit  soundgameGam

https://www.youtube.com/watch?v=GLJC1qG3oK4

postprosesで 8bit のモザイクにする

UE leftUP0
Unity leftDown0

Unity Graber グラバー

Unreal の本を参考にして ShaderForgeを作るとか。。。

| whaison | Unity3d | 08:19 | comments(0) | - | pookmark |
            
2016.11.16 Wednesday
AllAnimatorControllerStateTransitionSetting.cs

AllAnimatorControllerStateTransitionSetting.cs

 

 

 

| whaison | Unity3d | 19:39 | comments(0) | - | pookmark |
            
2016.11.16 Wednesday
ModelImporterFbxAnimationOptimal.cs Unity5.3 Modelimporter.resampleCurves

ModelImporterFbxAnimationOptimal.cs

 

Modelimporter.animationCompression = ModelImporterAnimationCompression.Optimal;
https://docs.unity3d.com/ja/current/ScriptReference/ModelImporterAnimationCompression.html

 

Off  アニメーションの圧縮を行いません
KeyframeReduction  Keyframe の削減を行います
KeyframeReductionAndCompression Keyframe の削減と圧縮を行います

Optimal 

 

 

 

Keyframe の削減を行い、メモリフットプリント(メモリ使用量)を減少させるために

ランタイムで最高の animation curve representation(アニメーション曲線表現) を選択します(デフォルト)。

 

Modelimporter.resampleCurves = true;

ture に設定すると、 その時点でカーブをクォータニオンで表現されたアセットとして保存します。
false に設定すると、 可能な場合、インポーターはアニメーションカーブを再サンプルしません。
オイラー角をそのまま再生時に使用しますUnityで再生時にクォータ二オンに変換されます。補足2 Unity の回転と向きへ


         
      

- FBX のうち適用されない機能 (変換の PreRotation や PostRotation など) では、この設定をオーバーライドします。このような場合、アニメーションカーブは、たとえ設定が無効になっていても再サンプルされます。最良の結果を得るには、PreRotation、PostRotation、GetRotationPivot の使用を避けるようにします。
- このオプションはバージョン 5.3 で導入されました。5.3 より前の Unity のインポートのビヘイビアは、常にこのオプションが有効にしてあるのと同じでした。したがって、このオプションを有効にすると、5.3 より前のアニメーションインポートと同じビヘイビアになります。

 
       

       

補足1 オイラー曲線のインポート  
https://docs.unity3d.com/jp/current/Manual/AnimationEulerCurveImport.html
回転のリサンプリングを無効にして、オリジナルのオイラーカーブを使う主な理由は、

デフォルトのクォータニオン補完では誤った結果になり、問題が発生するからです。
回転のリサンプリングを無効にした場合、、実行時でさえ、常に保持されるようになっています。
回転の値は Gameobject に適用されるまでオイラー値として保持されるようになります。これによる最終結果は、

以前より良くなる事はあっても、悪くなる事はないはずです。
ベイクされていない回転カーブに関して、回転カーブの純利益がでなければなりません。

Unity のトランスフォームインスペクターで使用されるオイラー角は、デフォルトで Z,X,Y の順番で適用されます。

Rotation (YZX)など Unity のデフォルトと異なる回転順によるオイラー曲線が

インポートされたアニメーションを再生するあるいは編集する場合、

現在の回転順の指示が回転フィールドの横に表示されます。

Rotation (Mixed)など

Transforms have different rotation orders,keyframes saved will have same value but not the same local rotation
また異なる回転順による複数のトランスフォームを編集する場合、

適用された同じオイラー回転が異なる回転順によるカーブで異なる結果を与えることを警告するため、ユーザーに対して上記警告が表示されます。

 

補足2 Unity の回転と向き
https://docs.unity3d.com/jp/current/Manual/QuaternionAndEulerRotationsInUnity.html
3D アプリケーションの回転は、たいていクォータ二オン(180度まで, ジンバルロックしない。)

オイラー角(180を越す回転OK ,ジンバルロックする。)のどちらかによって表されています。
それぞれ、利点と欠点があります。Unity では内部でクォータ二オンを採用していますが、

編集しやすいように、インスペクターでは同等のオイラー角で表しています。
       

 

 

 

| whaison | Unity3d | 17:31 | comments(0) | - | pookmark |
            
2016.10.20 Thursday
Unity ProfileAllocationFpsMeasureStatsUGUI.cs CurrentFrame

Unity ProfileAllocationFpsMeasureStatsUGUI.cs CurrentFrame

 

Code:

myStatsGameObject=new GameObject();

myStatsGameObject.AddComponent<ProfileAllocationFpsMeasureStatsUGUI>();

 

 

Script Making

Canvas

UnityEngine.EventSystems.EventSystem

UnityEngine.UI.Text

 

uGui Text .text

 

60 FPS
60.362 FPS
292 CurrentFrame
Used Mem                      22.93 MB
Max Used Mem              22.93 MB
Used Prog Heap                83.21 MB
Mono Used                 22.93 MB
Mono Heap                 39.93 MB
Total Alloc Mem               83.21 MB
System Memory         32675 MB
Total Reserved Mem        241.28 MB
Total Unused Res-Mem  158.07 MB
Graphic Memory            1993 MB
Allocation rate               1.14 MB
Collection frequency      0.90 s
Last collect delta            0.030 s (33.7 fps)

 

 

 

Auto uGui Setting

 

 

 

| whaison | Unity3d | 18:02 | comments(0) | - | pookmark |
            
2016.10.17 Monday
Unity 5.5.0b7 Bata Unity5.4.1p4  WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Pass '' has no vertex shader On Xcode 8.0

 

 

 

Unity 5.5.0b7 Bata And
Unity5.4.1p4  WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Pass '' has no vertex shader On Xcode 8.0

Unity5.4.1p4
Xcode Version 8.0 (8A218a)
iPhone 7 iOS10.0.2(14A456)
-------- -------- -------- -------- Xcode OutPut-------- -------- -------- -------- -------- 
-------- failed compiling:

Note: Creation of internal variant of shader 'Hidden/Internal-MotionVectors' failed.
WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Pass '' has no vertex shader
WARNING: Shader Unsupported: 'Hidden/Internal-MotionVectors' - Setting to default shader.

こちらで Fixed in Unity 5.4.0 と解決されたようになってるのは  'Hidden/CubeBlend'だけなんでしょうか?
https://issuetracker.unity3d.com/issues/ios-shader-compilation-failed-error-in-the-log

以下全ログ

https://www.facebook.com/groups/unityuserj/permalink/1190719494321322/?comment_id=1193658564027415

オフィシャルの方が 使用しているGraphics APIがOpenGLES 2だったりしますか? OpenGLES2の場合は動作せず、サポートするのは厳しいそうです と返信してくださったので !プロジェクトセッティングはOpenGLES2.0 ですね。Metalを指定したら消えました。

 

プロジェクトセッティング iOSのAuto Graphics APIs のチェックを外すと出てくる
Graphics APIs がOpenGLES 2.0だったんですが
そちらをを Metal にしたらなおりました。
そもそもなぜ今までのプロジェクトがOpenGLES 2.0 を使っていたのかはCriWareなどのプラグイン関係によるところかもしれません。

 

テストプロジェクト

https://bitbucket.org/whaison0422/unitymetaliosunity5.5.0b7

参考リンク

 

Unity5.3.2 Strip Engine Codeの挙動 iOS Build on XCode:WARNING: Shader Unsupported: 'Hidden/Dof/DX11Dof' - Pass '' has no vertex shader

http://whaison.jugem.jp/?eid=794

Strip Engine Code に関して

AssetBundle使いつつlink.xmlになにか書くのは無意味、、ではなかった!!

http://sassembla.github.io/Public/2016:02:11%204-33-38/2016:02:11%204-33-38.html

link.xml 製造機

http://sassembla.github.io/Public/2016:02:07%2023-39-20/2016:02:07%2023-39-20.html

 

teratail

https://teratail.com/questions/51422

| whaison | Unity3d | 17:01 | comments(0) | - | pookmark |
            
2016.09.30 Friday
Unity OutSideControlProgressBar.cs 外部からインクリメント可能なプログレスバー エディター拡張 EditorUtility.DisplayProgressBar //OK EditorUtility.DisplayCancelableProgressBar //NG

Unity OutSideControlProgressBar.cs 外部からインクリメント可能なプログレスバー エディター拡張

EditorUtility.DisplayProgressBar //OK    EditorUtility.DisplayCancelableProgressBar //NG

 

 

 

try catch できないエラーとして 以下が出た
  コントロールウィンドウから プログレスウィンドウを開き  プログレスバーウィンドウ内プロセスで閉じたらエラー
 
  GUI Window tries to begin rendering while something else has not finished rendering! Either you have a recursive OnGUI rendering, or previous OnGUI did not clean up properly.

 

 GUIウィンドウは、他の何かがレンダリング終了していないのに レンダリングを開始しようとしています!

どちらかが再帰的なOnGUI()レンダリングを持っている、または以前のOnGUIが正しくクリーンアップしませんでした。
 
  ということで コントロールウィンドウから 開き閉じを行うようにすると出なくなった。 自分で閉じるの禁止っす。みたいな感じでした。

| whaison | Unity3d | 11:34 | comments(0) | - | pookmark |
            
2016.09.06 Tuesday
クォータ二オン (四元数)と複素数とでの考え方 Dimensions 5 Japanese さまより

 

http://docs.unity3d.com/jp/current/Manual/QuaternionAndEulerRotationsInUnity.html

 

--

 

オイラー角とクォータ二オンの違い

オイラー角

オイラー角は、3つの角度の値を X、Y、Z 軸に順に当てはめて回転を表す簡易な方法です。オイラー角をあるオブジェクトに応用する場合は、オブジェクトを各軸に沿って与えられた角度で回転させます。

  • 利点 - オイラー角は、3つの角度から構成される直感的で「人間が理解できる」フォーマットで表現されています。
  • 利点 - オイラー角は、180度以上の回転を経て、1つの向きから別の向きへの回転を表現できます。
  • 制限 - オイラー角はジンバルロック (Gimbal lock) として知られている制限があります。対象をそれぞれの軸に沿って順に回転させるとき、第一、第二の回転によって、結果的に 3つ目の軸にそろってしまうことがあります。つまり、第三の回転値を 3つ目の軸に反映できないために、「角度の自由」が失われてしまいます。

クォータ二オン

クォータニオンは、オブジェクトの向きや回転を表すのに使用されます。この表現法では、内部で 4つの数字 (Unity では x、y、z、w と呼びます) で構成されています。ただし、この数字は、角度や軸を表現しているわけでなく、通常、直接アクセスすることはありません。クォータ二オン (四元数)について特別に興味がない限り、クォータニオンが 3D 空間の回転を表しているのだということを知っているだけで十分で、通常、x、y、z プロパティーを操作したり変更することはありません。

ベクトルが位置と方向 (方向は原点から測ります) を表現するのと同様に、クォータ二オンは向きと回転を表現できます。回転は、回転「基準」か「単位」を基準に測られます。回転を、ある向きからもう一方の向きへの方向として計測するため、クォータ二オンでは、180度より大きな回転を表現することができません。

  • 利点 - クォータ二オンの回転は、ジンバルロックの影響を受けません。
  • 制限 - 単体のクォータ二オンでは、180度を超す回転を表すことができません。 (果たしてそうだろうか?)
  • 制限 - クォータ二オンの数的表現は、直感的に理解できません。 (そうだろうか?)

-

-

https://www.youtube.com/watch?v=66VZBMAPn3E

-

--

1にマイナス1をかけるとマイナス1だ 180度回転

-

1に

 

いったんルートマイナス1かけると 90度になる

-

-

- ( マイナス 1の平方根はなく虚数iとされるが)

- ルートマイナス1 であらわさず一旦 i としてあらわすと世界が見えてくる

 

-

-これは座標系ととらえることができる。

-そして  ( 1,0+2,0i 複素数) と ( 3,0+1,0i  複素数) のたしざんができる。

    1,0+2,0i

+  3,0+1,0i

--------------

    4,0+3,0i

 

-

複素数をに2をかけることもできる

  1,0+1,0i

        x 2

-----------

  2,0+2,0i

 

-

-

複素数にiをかけることもできる iは90度回転だからだ。

   3,0+1,0i

         x i

------------

  -1,0+3,0i

 

複素数どうしの掛け算はどうだろう?

     2,0+1,5i

 x -1,0+2,4i

----------------

 

これを計算してみると

(2+1,5i).(-1+2,4i)

左辺 2 と 1.5i にそれぞれかけるとこうなり

=2(-1+2,4i)+1,5i(-1+2,4i)

それぞれ,かけていこう。

= -2+4,8i   -1,5i+ 3,6i.i

iは-1の平方根なのでi かける iはマイナス1だ。

= -2+4,8i   -1,5i -3,6

すこしiについて整理すると

= -2 -3,6 +4,8i -1,5i

-5.6    +3.3i

グラフで示すとこうなる。

これは おどろくべきことで、平面状の点 通常(x,y) をあらわすのに 1つの数(1+1i)で 足りるということだ。

 

黄色の長さを測ってみよう=これは絶対値をはかることができる。

また 複素数の絶対値 x  複素数の絶対値 =  複素数 x  複素数 の絶対値  となる。

角度を見てみよう!

複素数の角度は 原点からのびる、その プラス 水平面からの角度だ

二つの複素数の角度は36,8c +112,6c =149,4c「かけあわせた複素数」の和だ

 

| whaison | Unity3d | 17:06 | comments(0) | - | pookmark |