二次B-スプライン曲線の最接近点(式の展開)
- 2023.05.13
- スプライン曲線
式の展開 制御点が5点の二次B-スプライン曲線の式は $$ S(u)=\sum_{j=0}^{4}P_jb_{j,2}(u) \tag{1} $$ $$ \begin{align} &b_{j,0}(u):=\begin{cases} 1 \hspace{10pt} if \hspace{10pt} u_j\leq u\lt u_{j+1}\\ 0 \hspace{10pt} othe […]
式の展開 制御点が5点の二次B-スプライン曲線の式は $$ S(u)=\sum_{j=0}^{4}P_jb_{j,2}(u) \tag{1} $$ $$ \begin{align} &b_{j,0}(u):=\begin{cases} 1 \hspace{10pt} if \hspace{10pt} u_j\leq u\lt u_{j+1}\\ 0 \hspace{10pt} othe […]
任意の座標からベジェ曲線上の最も近い点をニュートン法を用いて求めました。 ニュートン法 ニュートン法の方程式は $$ x_{n+1} = x_n-\frac{f(x_n)}{f'(x_n)} $$ です。これを繰り返し求めることで\(f(x) = 0\)となる\(x\)が求まります。しかし、条件によっては解に収束しないことがあります。 ベジェ曲線との距離 4点を通る三次ベジェ曲線で求めた式を […]
三次ベジェ曲線は二つの端点と二つの方向点によって形が決まります。この場合、ベジェ曲線は方向点を通りません。そこで、二つの端点とその間にある二つの点から方向点を決定し、この方向点を用いて4点を通る三次ベジェ曲線を求めました。 式 三次ベジェ曲線は以下の式で表されます。\(C_0\)及び\(C_3\)は端点、\(C_1\)及び\(C_2\)は方向点です。 $$ \begin{align} […]
CustomVolumeParameter VolumeComponentで利用できるVolumeParameterは予め用意されているものがあります。しかし、enumのように既存のVolumeParameter以外のParameterを利用したい場合があります。この場合、VolumeParameterを継承したクラスを作成し、新たにVolumeParameterを作成する必要があります。 Sc […]
通常は一つのレンダーターゲットに対して描画を行います。これに対し、MRT(Multiple Render Target)では複数のレンダーターゲットへ一度に描画することができます。このMRTをRenderFeature内でCommandBufferを使用して実行します。これは、Library¥PackageCache¥com.unity.render-pipelines.universal@7. […]
前回(EditorでAnimatorの再生 その1)、Animator.UpdateによるAnimatorの再生を行いました。今回は、EditorWindowへAnimatorに設定されているパラメーターを表示し、それらを変更することでアニメーションの遷移を行う機能を追加しました。 Script 作成したScriptは以下の通りです。 パラメーターの取得と表示 Aniamtor.parame […]
Editor上でAnimatorの再生するEditorWindowを作成しました。 Animatorの再生 Animator.UpdateへTime.deltaTimeを渡すことでEditorでAnimatorを再生を行うことができます。 EditorWindowではLayout→Repaint→Updateの順に実行されます。試しにUpdate内以外でAnimatorの再生を行ってみました。 […]
作成したEditorWindowへMaterialEditorを用いてマテリアルのプロパティを表示する方法です。 MaterialEditorの作成とプロパティの表示 マテリアルエディターはEditor.CreateEditorによって作成することができます。これを用いてマテリアルのヘッダーとプロパティの描画を行います。 これを実行すると以下のようになります。 ヘッダーをクリックし、プロパティ […]
EditorWindowを分割するScriptを作成しました。 Script EditorWindowを分割するScriptは以下の通りです。 使用例に使用したScriptは以下の通りです。 使い方 このScriptを利用するにあたってはインスタンスの作成が必要となります。インスタンスを作成する際に、各領域の最小幅、最小高さ、境界線の太さ及び境界線の色を設定することができます。 二分割 垂直方 […]
EditorGUILayout.ObjectFieldやEditorGUI.ObjectFieldはGUIStyleを設定できないため、これらのコントロールは見た目の変更ができません。そこで、GUIStyleを自由に変更できるObjectFieldを作成しました。 Script 作成したscriptは以下の通りです。 ボタンなし ボタンがない場合のオブジェクトフィールドのScriptです。 […]