changeset 2:192a425a7f10 default tip

final commit
author Masato Tawata <e185761@ie.u-ryukyu.ac.jp>
date Thu, 17 Feb 2022 17:33:16 +0900
parents ee7afe39f461
children
files .DS_Store Presentation.pptx figures/quad_div.graffle figures/theta2_unity.png figures/theta_unity.png ie-thesis.sty platex401.fls presenfig/corneredge.pdf presenfig/space1.pdf presenfig/space2.pdf text/Eabstract.texi text/Jabstract.texi text/chapter2.texi text/chapter3.texi text/introduction.texi text/reference.aux text/reference.texi thesis.aux thesis.dvi thesis.fdb_latexmk thesis.fls thesis.log thesis.pdf thesis.synctex.gz thesis.tex thesis.toc
diffstat 26 files changed, 705 insertions(+), 337 deletions(-) [+]
line wrap: on
line diff
Binary file .DS_Store has changed
Binary file Presentation.pptx has changed
Binary file figures/quad_div.graffle has changed
Binary file figures/theta2_unity.png has changed
Binary file figures/theta_unity.png has changed
--- a/ie-thesis.sty	Tue Feb 01 08:02:54 2022 +0900
+++ b/ie-thesis.sty	Thu Feb 17 17:33:16 2022 +0900
@@ -50,11 +50,11 @@
 		%\begingroup
 		\renewcommand{\arraystretch}{1.5}
 		\begin{tabular}{c}
-			\textbf{\Large \number\year 年度 卒業論文}\\
+			\textbf{\Large 2021 年度 卒業論文}\\
 			\textbf{\Large Bachelor's Thesis}\\
 		\end{tabular}\\
 		\vspace{3zw}
-		\renewcommand{\arraystretch}{3.0}
+		\renewcommand{\arraystretch}{2.0}
 		\begin{tabular}{c}
 			\begin{minipage}[c]{36zw}	\center{\textbf{\LARGE \@jtitle}}\end{minipage}\\
 			\begin{minipage}[c]{36zw}	\center{\textbf{\LARGE \@title}}\end{minipage}\\
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/platex401.fls	Thu Feb 17 17:33:16 2022 +0900
@@ -0,0 +1,3 @@
+PWD /Users/tawata/UnivClassMemo/e185761/finalterm
+INPUT /usr/local/texlive/2018/texmf.cnf
+INPUT /usr/local/texlive/2018/texmf-dist/web2c/texmf.cnf
Binary file presenfig/corneredge.pdf has changed
Binary file presenfig/space1.pdf has changed
Binary file presenfig/space2.pdf has changed
--- a/text/Eabstract.texi	Tue Feb 01 08:02:54 2022 +0900
+++ b/text/Eabstract.texi	Thu Feb 17 17:33:16 2022 +0900
@@ -1,1 +1,5 @@
-ここには英語で要旨を記述する.日本語で記述される卒業論文であってもこの項目を省略することはできない.分量規定はないが,日本語用紙と比較して極端に少ないことがないようにする.
\ No newline at end of file
+In games, spatial audio has been used as a supplementary role to impress users with a specific location or to create a sense of atmosphere.
+By incorporating changes in the direction of the sound source due to sound diffraction into the game logic, spatial acoustics can be made not only a supplementary role but also a core element for building game play.
+
+In this study, we verified whether the phenomenon of sound source position change due to the sound going around the wall, which is necessary to construct the above game, can be realized by calculating the diffraction path by path finding.
+In addition, to cope with the dynamically changing environment, we implemented a method to reconstruct the pathfinding graph in real time.
--- a/text/Jabstract.texi	Tue Feb 01 08:02:54 2022 +0900
+++ b/text/Jabstract.texi	Thu Feb 17 17:33:16 2022 +0900
@@ -1,1 +1,5 @@
-ここには日本語要旨を記述する.分量の目安は全角300文字以上1ページ以内程度である.本文が英語の場合であっても日本語要旨を記述するものとする.
+ゲームにおいて空間音響は,ユーザーに特定の場所を印象付けたり空気感の演出などの補助的な役割で用いられてきた.
+音の回折による音源方向の変化をゲームロジックに組み込むことで,空間音響を補助的な役割のみならず,ゲームの遊びを構築するコアな要素にする事ができると考えられる.
+
+本研究では,上記のようなゲームを構築するために必要な音が壁を回り込むことで音源の位置が変化する現象を,経路探索による回折経路の計算で実現できるかどうかの検証を行なった.
+また,動的に変化する環境に対応するために,経路探索用のグラフをリアルタイムで再構築できるよう実装した.
--- a/text/chapter2.texi	Tue Feb 01 08:02:54 2022 +0900
+++ b/text/chapter2.texi	Thu Feb 17 17:33:16 2022 +0900
@@ -1,10 +1,9 @@
-\chapter{関連研究および基礎概念}
-\section{基礎概念について}
-\subsection{OpenALについて}
-OpenALとはクロスプラットフォームに対応し、ゲームやその他の多くのオーディオアプリケーションで利用できる3DオーディオAPIである。いくつかの実装が存在し、現在はOpenAL-Softが主流な実装となっている。
-3次元空間上での音の表現に適しており、簡素な記述で立体的な音場を表現する事ができる。
+\chapter{基礎概念}
+\section{OpenALについて}
+OpenALとはクロスプラットフォームに対応し,ゲームやその他の多くのオーディオアプリケーションで利用できる3DオーディオAPIである.いくつかの実装が存在し,現在はOpenAL-Softが主流な実装となっている.
+3次元空間上での音の表現に適しており,簡素な記述で立体的な音場を表現する事ができる.
 
-OpenALの構造は以下の様になっている。
+OpenALの構造は以下の様になっている.
 \begin{figure}[htbp]
   \begin{center}
    \includegraphics[width=70mm]{./figures/openal.pdf}
@@ -13,35 +12,97 @@
    \end{center}
 \end{figure}
 
-Deviceの下にコンテキストと、音源の実際の信号などを保持しているBufferが存在する。Contextは複数存在し、それぞれのContextに音を受け取る役割を持つListenerが1つある。
-SourceはContext内に複数個設ける事ができ、Bufferからの情報を読み取り実際に音声を再生する役割を持つ。
+Deviceの下にコンテキストと,音源の実際の信号などを保持しているBufferが存在する.Contextは複数存在し,それぞれのContextに音を受け取る役割を持つListenerが1つある.
+SourceはContext内に複数個設ける事ができ,Bufferからの情報を読み取り実際に音声を再生する役割を持つ.
+
+\section{Unityについて}
+UnityはUnity Tecnologiesが開発しているクロスプラットフォームに対応したゲームエンジンである.
+C\#でのプログラミングが可能で,レンダリングの機能も充実しているためゲーム制作以外でも,研究用途やコンピュータグラフィックスの分野でも用いられる.
+本研究ではC++を用いてOpenALによる3次元音響のシステムを構築するためC++によるコードをUnity上で利用できる様にする必要がある.
+UnityにはUnity native pluginという機能があり,CやC++その他の言語で書かれたプログラムに対してCのインターフェースを介してアクセスする事ができる.
+
+\section{レイキャストについて}
+\label{section_raycast}
+コンピューターにおいて,ある地点から特定の方向に障害物が存在するかを判定する際にレイキャストが用いられる.
+走査したい方向に仮想的な光線を飛ばし,その光線と物体を構成するポリゴンと呼ばれる3角形が交差しているか否かで障害物の有無を判定する方法が代表的である.
+この様な実装を工夫をせずに行うと全てのポリゴンに対して光線との交差判定をする必要があるため無駄な処理が多い.そのため通常は後述する空間分割などを用いて判定するポリゴンを減らす工夫がなされる.
 
-\subsection{Unityについて}
-UnityはUnity Tecnologiesが開発しているクロスプラットフォームに対応したゲームエンジンである。
-C\#でのプログラミングが可能で、レンダリングの機能も充実しているためゲーム制作以外でも、研究用途やコンピュータグラフィックスの分野でも用いられる。
-本研究ではC++を用いてOpenALによる3次元音響のシステムを構築するためC++によるコードをUnity上で利用できる様にする必要がある。
-UnityにはUnity native pluginという機能があり、CやC++その他の言語で書かれたプログラムに対してCのインターフェースを介してアクセスする事ができる。
+\section{Any-angle path planning}
+ゲーム上のある地点からある地点までの最短距離を求めたい場合,ダイクストラ法\cite{Dijkstra}を用いた経路探索アルゴリズムが用いられる.
+ダイクストラ法ではノードとそれらを繋ぐエッジで構成されたグラフ構造を基に最短経路を求める.
+3次元空間上ではノードが空間上の位置を表し,エッジはその空間同士が接続されているか(ノード間に障害物がない)を表現している.
+ゲームではダイクストラ法の中でもA*アルゴリズムがよく利用されているが,欠点も存在する.
+それは,A*は探索を始めるノードから隣接するノードを辿っていくことで経路を計算するため,ノード間の角度がグラフの構造に依存してしまうのである.例えばグラフ上のそれぞれのノードが隣接する上下左右の4方向のノードのみと接続されている場合,計算された経路は90度間隔でしか他のノードと接続できない.
+これを解決するアルゴリズムがAny-angle path planningである.
+Any-angle path planningはパスがグラフの構造に制限される事なく,任意の角度でノード同士を接続することができるアルゴリズムである.Any-angeでない経路探索アルゴリズムと比較してより適切なパスを計算できる.
 
-\subsection{レイキャストについて}
-\label{section_raycast}
-コンピューターにおいて、ある地点から特定の方向に障害物が存在するかを判定する際にレイキャストが用いられる。
-走査したい方向に仮想的な光線を飛ばし、その光線と物体を構成するポリゴンと呼ばれる3角形が交差しているか否かで障害物の有無を判定する方法が代表的である。
-この様な実装を工夫をせずに行うと全てのポリゴンに対して光線との交差判定をする必要があるため無駄な処理が多い。そのため通常は後述する空間分割などを用いて判定するポリゴンを減らす工夫がなされる。
+\section{Theta*アルゴリズム}
+Any-angle path planningの一つであるTheta*は親ノードを設定する際に,隣接しているノードの親ノードとの間に障害物があるかどうかを探索し障害物がなければ親ノードにその親ノードを設定する.
+
+以下にTheta*の疑似コード\cite{ThetaStar}を示す.
+Theta*で特徴的なのが,アルゴリズム\ref{alg1}の19行目の引数のノード間の障害物の有無を返すLineOfSight関数である.
+自分の親ノードと隣接ノードのLineOfSightを判定し,障害物がない場合隣接ノードに自分の親ノードを直接設定する.そのため,Goalノードから親ノードを順にたどってパスを生成する際に余分なノードを経路に含めずに計算する事ができる.
+
+
+
 
-\subsection{Any-angle path planning}
-ゲーム上のある地点からある地点までの最短距離を求めたい場合、ダイクストラ法\cite{Dijkstra}を用いた経路探索アルゴリズムが用いられる。
-ダイクストラ法ではノードとそれらを繋ぐエッジで構成されたグラフ構造を基に最短経路を求める。
-3次元空間上ではノードが空間上の位置を表し、エッジはその空間同士が接続されているか(ノード間に障害物がない)を表現している。
-ゲームではダイクストラ法の中でもA*アルゴリズムがよく利用されているが、欠点も存在する。
-それは、A*は探索を始めるノードから隣接するノードを辿っていくことで経路を計算するため、ノード間の角度がグラフの構造に依存してしまうのである。例えばグラフ上のそれぞれのノードが隣接する上下左右の4方向のノードのみと接続されている場合、計算された経路は90度間隔でしか他のノードと接続できない。
-これを解決するアルゴリズムがAny-angle path planningである。
-Any-angle path planningはパスがグラフの構造に制限される事なく、任意の角度でノード同士を接続することができるアルゴリズムである。Any-angeでない経路探索アルゴリズムと比較してより適切なパスを計算できる。
+\begin{algorithm}[H]
+    \caption{Theta*}
+    \label{alg1}
+    \begin{algorithmic}[1]
+    \Function{Main}{void}
+      \State $g(start) := 0$
+      \State $parent(start) := start$
+      \State $open:= \emptyset$
+      \State $closed:= \emptyset$
+      \State $open.Insert(start, 0)$
+      \While{$open \neq \emptyset$}
+        \State $n=open.Pop()$
+          \If{$n = n_{goal}$}
+          \State \Return "Find path"
+          \EndIf
+        \State $close := close \cup n$
+        \ForAll{$n' \in neighbors(n)$}
+          \If{$n'\notin close$}
+            \If{$n' \notin open$}
+              \State $g(n')=\infty$
+              \State $parent(n')=NULL$
+            \EndIf
+            \State UpdateVertex$(n,n')$
+          \EndIf
+        \EndFor
+      \EndWhile
+    \EndFunction
+    \Function{UpdateVertex}{$n,n'$}
+      \If{LineOfSight$(parent(n),n')$}
+        \If{$g(n)+c(n,n')<g(s')$}
+          \State $g(parent(n)):=g(n)+c(parebt(n),n')$
+          \State $parent(n'):=parent(n)$
+          \If{$n' \in open$}
+            \State open.Remove(n')
+          \EndIf
+          \State open.Insert(n',g(n')+h(n'))
+        \EndIf
+      \Else
+        \If{$g(n)+c(n,n')<g(n')$}
+          \State $g(n'):=g(n)+c(n,n')$
+          \State $parent(n'):=n$
+          \If{$n' \in open$}
+            \State $open.Remove(n')$
+          \EndIf
+          \State $open.Insert(n',g(n')+h(s'))$
+        \EndIf
+      \EndIf
+    \EndFunction
+    \end{algorithmic}
+\end{algorithm}
 
-\subsection{空間分割}
-\ref{section_raycast}の最後で述べたように空間を離散化せずにレイキャストなどの衝突判定を行うことは計算量の観点から見て非効率なため、同時に空間分割を用いた最適化がなされる場合が多い。
-空間分割の方法には4分木やkd木、BSP木など分割の仕方が異なる方法が多数存在するが、基本的には空間を分割しそれぞれの空間に属するオブジェクトを登録し、分割した空間をさらに分割して子空間を生成、子空間に属するオブジェクトをその子空間に登録、という操作を繰り返してオブジェクトが所属する空間を小さくしていくというのが主な目的である。
+\section{空間分割}
+\label{spatialdiv}
+\ref{section_raycast}の最後で述べたように空間を離散化せずにレイキャストなどの衝突判定を行うことは計算量の観点から見て非効率なため,同時に空間分割を用いた最適化がなされる場合が多い.
+空間分割の方法には4分木やkd木,BSP木など分割の仕方が異なる方法が多数存在するが,基本的には空間を分割しそれぞれの空間に属するオブジェクトを登録し,分割した空間をさらに分割して子空間を生成,子空間に属するオブジェクトをその子空間に登録,という操作を繰り返してオブジェクトが所属する空間を小さくしていくというのが主な目的である.
 
-以下に4分木での具体例を示す。
+以下に4分木での具体例を示す.
 \begin{figure}[htbp]
   \begin{minipage}[b]{0.45\linewidth}
   \centering
@@ -57,29 +118,29 @@
 \end{minipage}
 \end{figure}
 
-図\ref{nsp}では、赤色のオブジェクトが他の物体と衝突しているかを判定するためには、青色のオブジェクト全てに対して計算を行わななければならないが、
-図\ref{sp}では4分木アルゴリズムを使用し空間が4つに分割されており、他の空間に属している緑色のオブジェクトに関しては衝突していないことが保証されるため、同じ空間に属する青色のオブジェクト1つに対してのみ計算することで衝突する可能性のあるオブジェクトの判定を行う事ができる。
-分割は任意の数だけ行う事ができ、分割した空間の一つをさらに4つに分解して粒度を細かくする事が可能である。オブジェクトの数が多い際は分割数を増やすことで衝突判定の計算量を減らせるが、メモリの使用量が増加するため空間の特性に応じた適切な分割数を用いる必要がある。
+図\ref{nsp}では,赤色のオブジェクトが他の物体と衝突しているかを判定するためには,青色のオブジェクト全てに対して計算を行わななければならないが,
+図\ref{sp}では4分木アルゴリズムを使用し空間が4つに分割されており,他の空間に属している緑色のオブジェクトに関しては衝突していないことが保証されるため,同じ空間に属する青色のオブジェクト1つに対してのみ計算することで衝突する可能性のあるオブジェクトの判定を行う事ができる.
+分割は任意の数だけ行う事ができ,分割した空間の一つをさらに4つに分解して粒度を細かくする事が可能である.オブジェクトの数が多い際は分割数を増やすことで衝突判定の計算量を減らせるが,メモリの使用量が増加するため空間の特性に応じた適切な分割数を用いる必要がある.
 
-\subsection{8分木}
-8分木は4分木を3次元空間上で利用できるようにしたアルゴリズムである。
-一つの空間を8つの立方体に分割することを繰り返していくことで、それぞれのオブジェクトの所属空間を決定する。
+\section{8分木}
+8分木は4分木を3次元空間上で利用できるようにしたアルゴリズムである.
+一つの空間を8つの立方体に分割することを繰り返していくことで,それぞれのオブジェクトの所属空間を決定する.
 \begin{figure}[htbp]
   \begin{minipage}{0.3\hsize}
   \centering
-  \includegraphics[width=20mm]{./figures/octree_Level0.pdf}
+  \includegraphics[width=40mm]{./figures/octree_Level0.pdf}
   \label{octree0}
   \caption{分割数0}
 \end{minipage}
 \begin{minipage}{0.3\hsize}
   \centering
-  \includegraphics[width=20mm]{./figures/octree_Level1.pdf}
+  \includegraphics[width=40mm]{./figures/octree_Level1.pdf}
   \caption{分割数1}
   \label{octree1}
 \end{minipage}
 \begin{minipage}{0.3\hsize}
   \centering
-  \includegraphics[width=20mm]{./figures/octree_Level2.pdf}
+  \includegraphics[width=40mm]{./figures/octree_Level2.pdf}
   \caption{分割数2}
   \label{octree2}
 \end{minipage}
--- a/text/chapter3.texi	Tue Feb 01 08:02:54 2022 +0900
+++ b/text/chapter3.texi	Thu Feb 17 17:33:16 2022 +0900
@@ -1,37 +1,35 @@
 \chapter{Kingdom Spatial Audio}
 \section{概要}
-本章ではリアルタイムで音響を再計算、再生するシステムとして制作したKingdom Spatial Audio(以降、KSA)の構成について説明する。
-KSAでは聴覚的な影響が大きい反射と、\ref{intro}で述べた様な音が壁を回り込んでくる回折現象を主に再現するシステムとなっている。
-それぞれの音響効果をシミュレートするにあたって、KSAではレイキャストと経路探索を用いてシステムを構築している。
+本章ではリアルタイムで音響を再計算,再生するシステムとして制作したKingdom Spatial Audio(以降,KSA)の構成について説明する.
+KSAでは聴覚的な影響が大きい反射と,音が壁を回り込んでくる回折現象を主に再現するシステムとなっている.
+それぞれの音響効果をシミュレートするにあたって,KSAではレイキャストと経路探索を用いてシステムを構築している.
 
-レイキャストを用いることで周囲の遮蔽物の状態を取得する事が可能となり、音の反響時間や反射による音の増幅の計算をすることが可能になる。
-経路探索では音が回り込むために生成される回折経路を近似し、音が聞こえる方向を変化させる効果と音の高周波成分が減衰する現象を再現する。
+レイキャストを用いることで周囲の遮蔽物の状態を取得する事が可能となり,音の反響時間や反射による音の増幅の計算をすることが可能になる.
+経路探索では音が回り込むために生成される回折経路を近似し,音が聞こえる方向を変化させる効果と音の高周波成分が減衰する現象を再現する.
 
-また、経路探索は計算に時間を要するため、メインスレッドで処理を行うと同じくメインスレッドで動作しているUnityの動作が停止し画面が固まってしまうなどの悪影響が発生する。
-そのため、経路探索はサブスレッドで処理を行う様にし、複数の経路探索が同時に行われても問題なく実行できるように構築している。
-
-\section{システム構成}
-\ref{system_kousei}に構築したシステムの構成を示す。
+また,経路探索は計算に時間を要するため,メインスレッドで処理を行うと同じくメインスレッドで動作しているUnityの動作が停止し画面が固まってしまうなどの悪影響が発生する.
+そのため,経路探索はサブスレッドで処理を行う様にし,複数の経路探索が同時に行われても問題なく実行できるように構築している.
 
 \section{システムの流れ}
-図\ref{ksa_flow}にシステムの大まかなフローチャートを示す。
-まずゲーム開始時に初期化処理としてワールドのオブジェクト情報を読み込む。次に、そのオブジェクト情報から8分木を構築する。
-
+図\ref{fig:ksa_flow}にシステムの大まかなフローチャートを示す.
+まずゲーム開始時に初期化処理としてワールドのオブジェクト情報を読み込む.次に,そのオブジェクト情報から8分木を構築する.
+初期化処理の完了後は,毎フレーム実行されるゲームループでリスナーの位置を更新し,計算した回折経路を元にオーディオプレイヤーの位置を変更する.
+レイキャストを用いた反響の計算を行い,必要に応じて8分木とグラフの更新を非同期で実行する.
 
 \begin{figure}[htbp]
   \begin{center}
-   \includegraphics[width=70mm]{./figures/flow.pdf}
+   \includegraphics[width=80mm]{./figures/flow.pdf}
    \caption[KSAのフローチャート]{KSAのフローチャート}
    \label{fig:ksa_flow}
    \end{center}
 \end{figure}
 
 \section{反射の再現}
-音は障害物に衝突すると、一部は吸収され残りは反射されて空間に放出される。それが繰り返された結果、その場にいる人間には音が反響して聴こえる様になる。
-これはコンピュータ上ではリバーブエフェクトとして再現される。そこで、KSAではリバーブエフェクトに渡すパラメータを計算することで音の反射を再現する。
+音は障害物に衝突すると,一部は吸収され残りは反射されて空間に放出される.それが繰り返された結果,その場にいる人間には音が反響して聴こえる様になる.
+これはコンピュータ上ではリバーブエフェクトとして再現される.そこで,KSAではリバーブエフェクトに渡すパラメータを計算することで音の反射を再現する.
 
-リバーブのパラメーターには反射音の遅延時間や反響音の持続時間などを渡す必要がある。
-反射音の遅延時間は音が音源から発生し壁に反射した後リスナーに届くまでの時間で計算できる。反響音の持続時間は以下に示されるSabineの式\cite{sabin}を利用して求める事が可能である。
+リバーブのパラメーターには反射音の遅延時間や反響音の持続時間などを渡す必要がある.
+反射音の遅延時間は音が音源から発生し壁に反射した後リスナーに届くまでの時間で計算できる.反響音の持続時間は以下に示されるSabineの式\cite{sabin}を利用して求める事が可能である.
 
 \begin{math}
 T=\frac{0.161V}{S*A}
@@ -44,52 +42,52 @@
 \end{math}
 
 
-どちらのパラメータを求めるにも音源の周囲の環境を測定する必要があり、本システムではレイキャストを用いてこれらの計算を行う。
+どちらのパラメータを求めるにも音源の周囲の環境を測定する必要があり,本システムではレイキャストを用いてこれらの計算を行う.
 
-\ref{}で述べたように空間分割を行わずにレイキャストなどの衝突判定を行うことは計算量が多くなってしまうため最適ではない。そこで、レイキャストを行う前に8分木を用いた空間分割を実行する。
+空間分割を行わずにレイキャストなどの衝突判定を行うことは計算量が多くなってしまうため最適ではない.そこで,レイキャストを行う前に8分木を用いた空間分割を実行する.
 
-図\ref{fig:quad_div}は4分木の分割の様子を示している。可視化のしやすさのために4分木を用いているが、基本的な考え方は8分木も同様である。
-まず空間が空白ブロックと遮蔽ブロックで構成されているとする。分割レベル0では一つの空間に灰色の遮蔽ブロックと空白ブロックが混ざっている。そこでさらに分割数を増やす。分割レベル1では空間1と空間3が同じブロックのみで構成されているためこれ以上分割する必要はない。
-分割レベル2では空間0と空間2の分割数をさらに増やし、一種類のブロックのみで空間が構成される様にする。
-この様な分割を行うことで、空間1と3関してはその中に含まれる4つのブロックに対して個別に衝突判定を行う必要がなくなり、空間そのものと衝突判定を行えば良くなる。
+図\ref{fig:quad_div}は4分木の分割の様子を示している.可視化のしやすさのために4分木を用いているが,基本的な考え方は8分木も同様である.
+まず空間が空白ブロックと遮蔽ブロックで構成されているとする.分割レベル0では一つの空間に灰色の遮蔽ブロックと空白ブロックが混ざっている.そこでさらに分割数を増やす.分割レベル1では空間1と空間3が同じブロックのみで構成されているためこれ以上分割する必要はない.
+分割レベル2では空間0と空間2の分割数をさらに増やし,一種類のブロックのみで空間が構成される様にする.
+この様な分割を行うことで,空間1と3関してはその中に含まれる4つのブロックに対して個別に衝突判定を行う必要がなくなり,空間そのものと衝突判定を行えば良くなる.
 
 \begin{figure}[htbp]
   \begin{center}
-   \includegraphics[width=70mm]{./figures/quad_div.pdf}
+   \includegraphics[width=120mm]{./figures/quad_div.pdf}
    \caption[4分木の分割の様子]{4分木の分割の様子}
    \label{fig:quad_div}
    \end{center}
 \end{figure}
 
-次に、4分木を用いたレイキャストの方法について説明する。
-図\ref{raycast1}に示すように、4分木の分割の際と同じ環境を用いて、赤色の直線がオブジェクトに遮られていないかを判定する。
-ここでは遮られているかどうかの判定に直線が通っている空間の中に遮蔽ブロックが存在しないことを条件として用いる。
-図\ref{raycast2}では、分割レベル1の4つの空間の中から遮蔽オブジェクトが含まれている可能性のある空間0,2,3の空間と交差判定を行っている。実際に交差している空間0にはさらに分割された子空間が存在するため、その子空間に対しても交差判定を行う。
-子空間0'~3'の中から遮蔽ブロックが含まれる空間1'と交差判定を行う。直線は空間1'と交差していないため直線が交差している全ての空間の中に遮蔽オブジェクトが含まれていないことが確認できる。よって直線は遮蔽オブジェクトに遮られていないと判定できる。
-上記のようなレイキャストの実装を行うことで、通常は遮蔽物の数だけ行う必要があった交差判定が、空間0,2,3,1'の計4回で済むようになり高速化が見込める。
+次に,4分木を用いたレイキャストの方法について説明する.
+図\ref{raycast1}に示すように,4分木の分割の際と同じ環境を用いて,赤色の直線がオブジェクトに遮られていないかを判定する.
+ここでは遮られているかどうかの判定に直線が通っている空間の中に遮蔽ブロックが存在しないことを条件として用いる.
+図\ref{raycast2}では,分割レベル1の4つの空間の中から遮蔽オブジェクトが含まれている可能性のある空間0,2,3の空間と交差判定を行っている.実際に交差している空間0にはさらに分割された子空間が存在するため,その子空間に対しても交差判定を行う.
+子空間0'~3'の中から遮蔽ブロックが含まれる空間1'と交差判定を行う.直線は空間1'と交差していないため直線が交差している全ての空間の中に遮蔽オブジェクトが含まれていないことが確認できる.よって直線は遮蔽オブジェクトに遮られていないと判定できる.
+上記のようなレイキャストの実装を行うことで,通常は遮蔽物の数だけ行う必要があった交差判定が,空間0,2,3,1'の計4回で済むようになり高速化が見込める.
 
 \begin{figure}[htbp]
   \begin{minipage}{0.3\hsize}
   \centering
-  \includegraphics[width=20mm]{./figures/raycast_first.pdf}
+  \includegraphics[width=40mm]{./figures/raycast_first.pdf}
   \label{raycast1}
   \caption{レイキャストの環境}
 \end{minipage}
 \begin{minipage}{0.3\hsize}
   \centering
-  \includegraphics[width=20mm]{./figures/raycast_second.pdf}
+  \includegraphics[width=40mm]{./figures/raycast_second.pdf}
   \caption{空間0,2,3との交差判定}
   \label{raycast2}
 \end{minipage}
 \begin{minipage}{0.3\hsize}
   \centering
-  \includegraphics[width=20mm]{./figures/raycast_third.pdf}
+  \includegraphics[width=40mm]{./figures/raycast_third.pdf}
   \caption{空間1'との交差判定}
   \label{raycast3}
 \end{minipage}
 \end{figure}
 
-これを3次元に拡張し8分木に適応したプログラムをKSAに実装した。
+これを3次元に拡張し8分木に適応したプログラムをKSAに実装した.
 \begin{figure}[htbp]
   \begin{center}
    \includegraphics[width=70mm]{./figures/raycast.png}
@@ -99,16 +97,15 @@
 \end{figure}
 
 \section{回折の再現}
-音は障害物の端から回り込んで伝播する性質を持っている。高周波の音ほど回折は起こりにくいため、壁を挟んで音源の反対側にいる人物には音が篭って聞こえる。また音の方向も音源自体ではなく回り込んでくる壁の端から聞こえるようになる。
-本システムでは経路探索を用いて音の回折経路と回折してきた音の方向を計算する。
+音は障害物の端から回り込んで伝播する性質を持っている.高周波の音ほど回折は起こりにくいため,壁を挟んで音源の反対側にいる人物には音が篭って聞こえる.また音の方向も音源自体ではなく回り込んでくる壁の端から聞こえるようになる.
+本システムでは経路探索を用いて音の回折経路と回折してきた音の方向を計算する.
 
-回折経路を算出する際、通常のグラフ探索アルゴリズムでは計算された経路がグラフの離散化された位置に依存してしまうため、図\ref{astar_path}のようにギザギザの経路が算出されてしまい、期待する結果よりも経路長が長くなってしまう。
-そこでKSAではAny-angle path planningアルゴリズムとedge-corner graphを用いた最短経路探索を行う。
+回折経路を算出する際,通常のグラフ探索アルゴリズムでは計算された経路がグラフの離散化された位置に依存してしまうため,図\ref{astar_path}のようにギザギザの経路が算出されてしまい,期待する結果よりも経路長が長くなってしまう.
+そこでKSAではAny-angle path planningアルゴリズムとedge-corner graphを用いた最短経路探索を行う.
 
-\subsection{edge-corner graph}
 
 \subsection{Any-angle path planning}
-Any-angle path planningアルゴリズムの一つであるTheta\*\cite{ThetaStar}はA*アルゴリズムをベースに、間に障害物がないノード同士を接続することで図\ref{thetastar_path}のような直線的で自然な経路を生成している。
+Any-angle path planningアルゴリズムの一つであるTheta*\cite{ThetaStar}はA*アルゴリズムをベースに,間に障害物がないノード同士を接続することで図\ref{thetastar_path}のような直線的で自然な経路を生成している.
 
 \begin{figure}[htbp]
   \begin{minipage}{0.44\hsize}
@@ -125,10 +122,18 @@
 \end{minipage}
 \end{figure}
 
+
+\section{8分木によるグラフの構築}
+8分木は一つの空間に含まれる情報を少なくするために,一つの3次元空間を8つの空間に分割しこれを再帰的に繰り返して木構造を構築するアルゴリズムである.
+本システムで構築した8分木は,空間に含まれるオブジェクトの種類が複数存在する場合に分割を行い,一つの空間に含まれるオブジェクトの種類が一つになるまで空間を小さくしていく方法を用いている.
+
+構築した8分木空間の頂点にノードを生成し,遮蔽物で遮られていない隣接するノード同士を接続していきグラフを構築する.
+この様なグラフをedge-corner graphと呼び,何もない場所が多いような疎な空間において生成されるノードの密度が低くなり,グラフの探索効率が上昇する.
+
 \section{経路探索のサブスレッド化}
-経路探索は本システムの計算処理の中でもかなり計算量が多いアルゴリズムとなっている。
-グラフのサイズが128の場合、経路探索に27msかかっている。一般的なゲームが最低60fps(1フレーム16.6ms)で動作することを鑑みると、この計算時間はフレーム落ちやフレームレートの不安定化の原因になるため避けたい現象である。
-そこでKSAでは経路探索をサブスレッドで行うようにし、メインスレッド動作しているUnityの処理を停止させないようにする。
+経路探索は本システムの計算処理の中でもかなり計算量が多いアルゴリズムとなっている.
+グラフのサイズが128の場合,経路探索に27msかかっている.一般的なゲームが最低60fps(1フレーム16.6ms)で動作することを鑑みると,この計算時間はフレーム落ちやフレームレートの不安定化の原因になるため避けたい現象である.
+そこで経路探索をサブスレッドで行うようにし,メインスレッド動作しているUnityの処理を停止させないようにする.
 \begin{table}[H]
 \caption{経路探索の計算時間}
 \label{pathfinding_time}
@@ -148,6 +153,128 @@
 \end{tabular}
 \end{table}
 
-メインスレッドで行っていた処理をサブスレッドに移行するにあたって、複数のサブスレッドから同時にアクセスされる可能性を考慮する必要がある。
-複数のスレッドから同時に書き込みが発生すると、最後に書き込まれた情報以外は消失してしまうことでデータの整合性が取れなくなったり、プログラム上で意図しないエラーが発生する。
-これを解決するために、経路探索のために用いていたグラフに、スタートノードとゴールノードを書き込んでいた処理を削除し、グラフ
+メインスレッドで行っていた処理をサブスレッドに移行するにあたって,複数のサブスレッドから同時にアクセスされる可能性を考慮する必要がある.
+複数のスレッドから同時に書き込みが発生すると,最後に書き込まれた情報以外は消失してしまうことになるためデータの整合性が取れなくなったり,プログラム上で意図しないエラーが発生する.
+これを解決するために,ソースコード\ref{write_node}の45行目で行なっているグラフにスタートノードとゴールノードを書き込んでいた処理を削除し,
+ソースコード\ref{unwrite_node}の42行目のように別の変数に保持しておき,探索時に適切なタイミングで前述の二つのノードを読み込む様に変更した.
+\begin{lstlisting}[caption=グラフに直接ノードを書き込む場合,label=write_node]
+VertexNode* ThetaStar::CreateEndNode(Utility::Vector3 endPos, VertexGraph* graph, Octree* octree)
+{
+    VertexNode* endNode = new VertexNode();
+    endNode->id = -2;
+    endNode->nodePosition = endPos;
+    endNode->h = 0;
+
+    Utility::Vector3Index index = Utility::Vector3Index{ (int)floorf(endPos.x), (int)floorf(endPos.y),(int)floorf(endPos.z) };
+    int morton = OctreeUtility::Index2Morton(index);
+
+    int maxlevel = octree->getMaxOctreeLevel();
+
+    OctreeNode* targetNode = octree->getOctreeRoot();
+    for (int i = 1; i <= maxlevel; i++)
+    {
+        if (targetNode->attribute == OctreeNodeAttribute::Branch)
+        {
+            int childSpatialIndex = (morton & (7 << ((maxlevel - i) * 3))) >> ((maxlevel - i) * 3);
+            targetNode = &targetNode->childNodes[childSpatialIndex];
+        }
+    }
+    int lowestMorton = (int)pow(8, maxlevel - targetNode->nodeLevel) * targetNode->mortonNumber;
+    Utility::Vector3Index lowestIndex;
+    OctreeUtility::Morton2Index(lowestMorton, maxlevel, &lowestIndex);
+
+    int nodeScale = (int)pow(2, maxlevel - targetNode->nodeLevel);
+
+    for (int x = 0; x <= 1; x++)
+    {
+        for (int y = 0; y <= 1; y++)
+        {
+            for (int z = 0; z <= 1; z++)
+            {
+                int edgeIndex = x + (2 * y) + (4 * z);
+
+                int graphIndex_x = lowestIndex.x + (x * nodeScale);
+                int graphIndex_y = lowestIndex.y + (y * nodeScale);
+                int graphIndex_z = lowestIndex.z + (z * nodeScale);
+
+                int index = Utility::Vec3IndexToLinerIndex(graph->getGraphSize(), graphIndex_x, graphIndex_y, graphIndex_z);
+
+                graph->vertexGraph[index].neighbors.resize(7);
+                graph->vertexGraph[index].neightborDistance.resize(7);
+
+                graph->vertexGraph[index].neighbors[6] = endNode;
+                graph->vertexGraph[index].neightborDistance[6] = Utility::Distance(endPos, Utility::Vector3{ (float)graphIndex_x, (float)graphIndex_y, (float)graphIndex_z });
+            }
+        }
+    }
+
+    return endNode;
+\end{lstlisting}
+
+\begin{lstlisting}[caption=グラフにノードを書き込まない場合,label=unwrite_node]
+VertexNode* ThetaStar::CreateEndNode(Utility::Vector3 endPos, VertexNode* graph, unordered_map<int, float>* nodeAdjacentGoal, Octree* octree)
+{
+    VertexNode* endNode = new VertexNode();
+    endNode->id = -2;
+    endNode->nodePosition = endPos;
+    endNode->h = 0;
+
+    Utility::Vector3Index index = Utility::Vector3Index{ (int)floorf(endPos.x), (int)floorf(endPos.y),(int)floorf(endPos.z) };
+    int morton = OctreeUtility::Index2Morton(index);
+
+    int maxlevel = octree->getMaxOctreeLevel();
+
+    OctreeNode* targetNode = octree->getOctreeRoot();
+    for (int i = 1; i <= maxlevel; i++)
+    {
+        if (targetNode->attribute == OctreeNodeAttribute::Branch)
+        {
+            int childSpatialIndex = (morton & (7 << ((maxlevel - i) * 3))) >> ((maxlevel - i) * 3);
+            targetNode = &targetNode->childNodes[childSpatialIndex];
+        }
+    }
+    int lowestMorton = (int)pow(8, maxlevel - targetNode->nodeLevel) * targetNode->mortonNumber;
+    Utility::Vector3Index lowestIndex;
+    OctreeUtility::Morton2Index(lowestMorton, maxlevel, &lowestIndex);
+
+    int nodeScale = (int)pow(2, maxlevel - targetNode->nodeLevel);
+
+    for (int x = 0; x <= 1; x++)
+    {
+        for (int y = 0; y <= 1; y++)
+        {
+            for (int z = 0; z <= 1; z++)
+            {
+                int edgeIndex = x + (2 * y) + (4 * z);
+
+                int graphIndex_x = lowestIndex.x + (x * nodeScale);
+                int graphIndex_y = lowestIndex.y + (y * nodeScale);
+                int graphIndex_z = lowestIndex.z + (z * nodeScale);
+
+                int index = Utility::Vec3IndexToLinerIndex(vertexGraph->getGraphSize(), graphIndex_x, graphIndex_y, graphIndex_z);
+
+                nodeAdjacentGoal->insert(make_pair(graph[index].id, Utility::Distance(endPos, Utility::Vector3{ (float)graphIndex_x, (float)graphIndex_y, (float)graphIndex_z })));
+            }
+        }
+    }
+
+    return endNode;
+}
+\end{lstlisting}
+
+\section{レイキャストの実行結果}
+以下にUnityでTheta*による経路探索を行なった結果を示す.
+\begin{figure}[htbp]
+  \centering
+  \includegraphics[width=80mm]{./figures/theta_unity.png}
+  \label{theta_path1}
+  \caption{Theta*による経路の生成}
+
+  \centering
+  \includegraphics[width=80mm]{./figures/theta2_unity.png}
+  \caption{複雑な経路の生成}
+  \label{theta_path2}
+\end{figure}
+
+図\ref{theta_path1}では音源である赤いブロックと,リスナーを表す青いブロックの間に遮蔽物が存在しており,計算された経路は遮蔽物を横から回り込むようなパスになっている.
+図\ref{theta_path2}は音源とリスナーとの間に遮蔽物が2枚あるより複雑な環境を示しており,それぞれの壁で一度づつ経路が曲がって到達している事がわかる.
--- a/text/introduction.texi	Tue Feb 01 08:02:54 2022 +0900
+++ b/text/introduction.texi	Thu Feb 17 17:33:16 2022 +0900
@@ -1,14 +1,14 @@
 \chapter{序論}
 \section{空間音響をゲームロジックに取り入れる}
 \label{intro}
- 昔からゲームに空間音響を取り入れることはよく行われていた。例えば、プレイヤーが洞窟の中に居るのならば音を響かせて狭い空間に居ることを演出したり、音源とプレイヤーとの間に遮蔽物があれば音を篭らせるなどである。
-比較的最近発売されたゲームではNiaR:Automata\ref{NiaR}が空間音響をゲームに取り入れた例として代表的である。
- こういったゲームでは空間音響を用いて特定の地点をより印象付けたり、プレイヤーがフィールドを探索する際にシームレスに音響が変化していくことで、より現実に近い自然な体験ができる様になっている。
-その一方で、空間音響はゲーム体験を補強する役割のみにとどまっておりゲームを構成する要素で最も重要なゲームロジックまでは関わってこない。仮に空間音響をゲームロジックに組み込む事ができれば次の様な体験ができると考えられる。
+ 昔からゲームに空間音響を取り入れることはよく行われていた.例えば,プレイヤーが洞窟の中に居るのならば音を響かせて狭い空間に居ることを演出したり,音源とプレイヤーとの間に遮蔽物があれば音を篭らせるなどである.
+比較的最近発売されたゲームではNiaR:Automata\cite{NiaR}が空間音響をゲームに取り入れた例として代表的である.
+ こういったゲームでは空間音響を用いて特定の地点をより印象付けたり,プレイヤーがフィールドを探索する際にシームレスに音響が変化していくことで,より現実に近い自然な体験ができる様になっている.
+その一方で,空間音響はゲーム体験を補強する役割のみにとどまっておりゲームを構成する要素で最も重要なゲームロジックまでは関わってこない.仮に空間音響をゲームロジックに組み込む事ができれば次の様な体験ができると考えられる.
 
-まず2人以上で対戦するFPS(First Person Shooting)ゲームを想定する。
-プレイヤー同士が壁を挟んで相対している状況において、空間音響が有効でない場合音が壁越しに直接聞こえ、プレイヤーは相手の位置を正確に完全にすることが出来る。その結果、音を目安に壁を飛び出して正確に相手を撃つ、という精密さが求められるゲームとなる。
-空間音響が有効な場合、音は壁の切れ目から回り込んで聞こえるためプレイヤーは相手の位置を正確に掴めず、壁越しに敵がいるという情報しか得られない。これによってプレイヤーは慎重に行動する様になるため、精密さが重要だったゲームから慎重さとリスク管理が求められる緊迫感のあるゲーム体験に変様する。
-このように、あくまで補助的な要素だった空間音響はゲームロジックに組み込むことでゲーム性そのものを変化させることのできる要素になる可能性がある。
-上記の空間音響を利用したゲームではプレイヤーが遮蔽物を設置して音の聞こえ方を変化させたり、壁に穴を開けて敵の油断をついたりなどの要素が追加できると考えられる。その場合、遮蔽物の増減に合わせて音響はリアルタイムで変化していくため、その度に音響の再計算を行う必要がある。音響をリアルタイムで計算する際に問題になるのは、全ての音響計算をプレイヤーが遅延を感じない速度で計算する必要があることである。
-そこで本研究では、音響パラメータの計算の軽量化や、音速の概念を取り入れ計算時間に猶予を持たせるなどの実装を行いリアルタイムで音響計算が行えるシステムの実現を目指す。
+まず2人以上で対戦するFPS(First Person Shooting)ゲームを想定する.
+プレイヤー同士が壁を挟んで相対している状況において,空間音響が有効でない場合音が壁越しに直接聞こえ,プレイヤーは相手の位置を正確に完全にすることが出来る.その結果,音を目安に壁を飛び出して正確に相手を撃つ,という精密さが求められるゲームとなる.
+空間音響が有効な場合,音は壁の切れ目から回り込んで聞こえるためプレイヤーは相手の位置を正確に掴めず,壁越しに敵がいるという情報しか得られない.これによってプレイヤーは慎重に行動する様になるため,精密さが重要だったゲームから慎重さとリスク管理が求められる緊迫感のあるゲーム体験に変様する.
+このように,あくまで補助的な要素だった空間音響はゲームロジックに組み込むことでゲーム性そのものを変化させることのできる要素になる可能性がある.
+上記の空間音響を利用したゲームではプレイヤーが遮蔽物を設置して音の聞こえ方を変化させたり,壁に穴を開けて敵の油断をついたりなどの要素が追加できると考えられる.その場合,遮蔽物の増減に合わせて音響はリアルタイムで変化していくため,その度に音響の再計算を行う必要がある.
+そこで本研究では,経路探索を用いた回折現象の再現や音響パラメータの計算の軽量化などの実装を行いリアルタイムで音響計算が行えるシステムの実現を目指す.
--- a/text/reference.aux	Tue Feb 01 08:02:54 2022 +0900
+++ b/text/reference.aux	Thu Feb 17 17:33:16 2022 +0900
@@ -1,6 +1,6 @@
 \relax 
 \@setckpt{./text/reference}{
-\setcounter{page}{15}
+\setcounter{page}{22}
 \setcounter{equation}{0}
 \setcounter{enumi}{0}
 \setcounter{enumii}{0}
@@ -18,4 +18,15 @@
 \setcounter{figure}{0}
 \setcounter{table}{0}
 \setcounter{parentequation}{0}
+\setcounter{lstnumber}{49}
+\setcounter{float@type}{16}
+\setcounter{algorithm}{1}
+\setcounter{ALG@line}{32}
+\setcounter{ALG@rem}{0}
+\setcounter{ALG@nested}{0}
+\setcounter{ALG@Lnr}{2}
+\setcounter{ALG@blocknr}{10}
+\setcounter{ALG@storecount}{0}
+\setcounter{ALG@tmpcounter}{0}
+\setcounter{lstlisting}{0}
 }
--- a/text/reference.texi	Tue Feb 01 08:02:54 2022 +0900
+++ b/text/reference.texi	Thu Feb 17 17:33:16 2022 +0900
@@ -1,38 +1,13 @@
 \begin{thebibliography}{99}
-\bibitem{Dijkstra}
-Dijkstra, E.W. (1959). A note on two problems in connexion with graphs.
+\bibitem{NiaR}SQUARE ENIX, NieR:Automata | SQUARE ENIX, \url{https://www.jp.square-enix.com/nierautomata/}
+\bibitem{Dijkstra} Dijkstra, E.W. (1959). A note on two problems in connexion with graphs.
 \bibitem{sabin}
- "Acoustics Engineering - Sabin"
-\bibitem{ThetaStar}
-Theta*: Any-Angle Path Planning on Grids
-\bibitem{ref-ipsj}
-論文誌ジャーナル原稿執筆案内, 情報処理学会, \url{https://www.ipsj.or.jp/journal/submit/ronbun_j_prms.html}, 2021/09/28.
-
-\bibitem{ref-journal}
-著者名, ``論文タイトル,'' 雑誌名, vol, no, page, year.
-
-\bibitem{ref-journal-ex}
-國田 樹, 遠藤聡志, ``学術論文の出典記載例,'' 知能情報学会誌, vol. 3, no. 2, pp.8-13, 2021.
+ "Acoustics Engineering - Sabin", \url{https://www.acoustics-engineering.com/html/sabin.html#:~:text=Sabin%20is%20a%20powerful%20CAD,a%20measure%20of%20speech%20intelligibility.}
+\bibitem{ThetaStar}Kenny Daniel, Alex Nash, Sven Koenig, Ariel Felner,
+Theta*: Any-Angle Path Planning on Grids, 2014.
+\bibitem{coner-graph}
+Ruoqi He, Chia-Man Hung, PATHFINDING IN 3D SPACE - A*, THETA*, LAZY THETA* IN OCTREE STRUCTURE,pp.8-9, 2016.
 
-\bibitem{ref-book}
-著者名, ``書籍タイトル,'' (編集者名), 出版社名, 発行都市名, 発行年.
 
-\bibitem{ref-book-ex}
-國田樹, ``著書の出典記載例,'' 知能情報出版, 沖縄, 2021.
-
-\bibitem{ref-proceedings}
-著者名, ``論文タイトル,'' 学会名もしくは会議名, no.論文番号, ページ, 開催都市名, 開催国名, year.
-
-\bibitem{ref-proceedings-ex}
-國田樹, 遠藤聡志, ``学会論文の出典記載例'' 第2回知能情報国際会議, no.2-1234, pp.1-8, Okinawa, Japan, 2021.
-
-\bibitem{ref-web}
-著者名(サイト管理者と同一の場合は省略可), Webページタイトル, サイト管理者名等, URL(url命令を使用すること), 参照年月日.
-
-\bibitem{ref-report1}
-見延庄太郎,理系のためのレポート・論文完全ナビ,講談社, 2016.
-
-\bibitem{ref-report2}
-福地健太郎,理工系のためのよい文章の書き方,翔泳社, 2019.
 
 \end{thebibliography}
--- a/thesis.aux	Tue Feb 01 08:02:54 2022 +0900
+++ b/thesis.aux	Thu Feb 17 17:33:16 2022 +0900
@@ -1,66 +1,86 @@
 \relax 
+\citation{NiaR}
 \@writefile{toc}{\contentsline {chapter}{\numberline {第1章}序論}{1}}
 \@writefile{lof}{\addvspace {10\jsc@mpt }}
 \@writefile{lot}{\addvspace {10\jsc@mpt }}
 \@writefile{toc}{\contentsline {section}{\numberline {1.1}空間音響をゲームロジックに取り入れる}{1}}
 \newlabel{intro}{{1.1}{1}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}関連研究および基礎概念}{3}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第2章}基礎概念}{3}}
 \@writefile{lof}{\addvspace {10\jsc@mpt }}
 \@writefile{lot}{\addvspace {10\jsc@mpt }}
-\@writefile{toc}{\contentsline {section}{\numberline {2.1}基礎概念について}{3}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}OpenALについて}{3}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.1}OpenALについて}{3}}
 \@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces OpenAL_Context}}{3}}
 \newlabel{fig:opeal}{{2.1}{3}}
 \citation{Dijkstra}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Unityについて}{4}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}レイキャストについて}{4}}
-\newlabel{section_raycast}{{2.1.3}{4}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}Any-angle path planning}{4}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.5}空間分割}{5}}
-\newlabel{nsp}{{2.1.5}{5}}
-\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces 空間分割なし}}{5}}
-\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces 空間分割あり}}{5}}
-\newlabel{sp}{{2.3}{5}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.6}8分木}{6}}
-\newlabel{octree0}{{2.1.6}{6}}
-\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces 分割数0}}{6}}
-\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces 分割数1}}{6}}
-\newlabel{octree1}{{2.5}{6}}
-\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces 分割数2}}{6}}
-\newlabel{octree2}{{2.6}{6}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}Kingdom Spatial Audio}{7}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.2}Unityについて}{4}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.3}レイキャストについて}{4}}
+\newlabel{section_raycast}{{2.3}{4}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.4}Any-angle path planning}{4}}
+\citation{ThetaStar}
+\@writefile{toc}{\contentsline {section}{\numberline {2.5}Theta*アルゴリズム}{5}}
+\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Theta*}}{6}}
+\newlabel{alg1}{{1}{6}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.6}空間分割}{7}}
+\newlabel{spatialdiv}{{2.6}{7}}
+\newlabel{nsp}{{2.6}{7}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces 空間分割なし}}{7}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces 空間分割あり}}{7}}
+\newlabel{sp}{{2.3}{7}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.7}8分木}{8}}
+\newlabel{octree0}{{2.7}{8}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces 分割数0}}{8}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces 分割数1}}{8}}
+\newlabel{octree1}{{2.5}{8}}
+\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces 分割数2}}{8}}
+\newlabel{octree2}{{2.6}{8}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第3章}Kingdom Spatial Audio}{9}}
 \@writefile{lof}{\addvspace {10\jsc@mpt }}
 \@writefile{lot}{\addvspace {10\jsc@mpt }}
-\@writefile{toc}{\contentsline {section}{\numberline {3.1}概要}{7}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.2}システム構成}{7}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.1}概要}{9}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.2}システムの流れ}{9}}
 \citation{sabin}
-\@writefile{toc}{\contentsline {section}{\numberline {3.3}システムの流れ}{8}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces KSAのフローチャート}}{8}}
-\newlabel{fig:ksa_flow}{{3.1}{8}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.4}反射の再現}{8}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces 4分木の分割の様子}}{9}}
-\newlabel{fig:quad_div}{{3.2}{9}}
-\newlabel{raycast1}{{3.4}{10}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces レイキャストの環境}}{10}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces 空間0,2,3との交差判定}}{10}}
-\newlabel{raycast2}{{3.4}{10}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces 空間1'との交差判定}}{10}}
-\newlabel{raycast3}{{3.5}{10}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.6}{\ignorespaces レイキャスト}}{10}}
-\newlabel{fig:raycast}{{3.6}{10}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.5}回折の再現}{10}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces KSAのフローチャート}}{10}}
+\newlabel{fig:ksa_flow}{{3.1}{10}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.3}反射の再現}{10}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces 4分木の分割の様子}}{11}}
+\newlabel{fig:quad_div}{{3.2}{11}}
+\newlabel{raycast1}{{3.3}{12}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces レイキャストの環境}}{12}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces 空間0,2,3との交差判定}}{12}}
+\newlabel{raycast2}{{3.4}{12}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces 空間1'との交差判定}}{12}}
+\newlabel{raycast3}{{3.5}{12}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.6}{\ignorespaces レイキャスト}}{12}}
+\newlabel{fig:raycast}{{3.6}{12}}
 \citation{ThetaStar}
-\newlabel{astar_path}{{3.5}{11}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.7}{\ignorespaces A*による経路生成}}{11}}
-\@writefile{lof}{\contentsline {figure}{\numberline {3.8}{\ignorespaces Theta*による経路生成}}{11}}
-\newlabel{thetastar_path}{{3.8}{11}}
-\@writefile{toc}{\contentsline {section}{\numberline {3.6}経路探索のサブスレッド化}{11}}
-\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces 経路探索の計算量}}{12}}
-\newlabel{pathfinding_time}{{3.1}{12}}
-\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}まとめと今後の展望}{13}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.4}回折の再現}{13}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.4.1}Any-angle path planning}{13}}
+\newlabel{astar_path}{{3.4.1}{13}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.7}{\ignorespaces A*による経路生成}}{13}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.8}{\ignorespaces Theta*による経路生成}}{13}}
+\newlabel{thetastar_path}{{3.8}{13}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.5}8分木によるグラフの構築}{13}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.6}経路探索のサブスレッド化}{14}}
+\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces 経路探索の計算時間}}{14}}
+\newlabel{pathfinding_time}{{3.1}{14}}
+\newlabel{write_node}{{3.1}{14}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.1}グラフに直接ノードを書き込む場合}{14}}
+\newlabel{unwrite_node}{{3.2}{16}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {3.2}グラフにノードを書き込まない場合}{16}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.7}レイキャストの実行結果}{18}}
+\newlabel{theta_path1}{{3.7}{18}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.9}{\ignorespaces Theta*による経路の生成}}{18}}
+\@writefile{lof}{\contentsline {figure}{\numberline {3.10}{\ignorespaces 複雑な経路の生成}}{18}}
+\newlabel{theta_path2}{{3.10}{18}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第4章}まとめ}{19}}
 \@writefile{lof}{\addvspace {10\jsc@mpt }}
 \@writefile{lot}{\addvspace {10\jsc@mpt }}
-\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}謝辞}{14}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {第5章}謝辞}{20}}
 \@writefile{lof}{\addvspace {10\jsc@mpt }}
 \@writefile{lot}{\addvspace {10\jsc@mpt }}
-\@input{./text/reference.aux}
+\bibcite{NiaR}{1}
+\bibcite{Dijkstra}{2}
+\bibcite{sabin}{3}
+\bibcite{ThetaStar}{4}
+\bibcite{coner-graph}{5}
+\@writefile{toc}{\contentsline {chapter}{参考文献}{21}}
Binary file thesis.dvi has changed
--- a/thesis.fdb_latexmk	Tue Feb 01 08:02:54 2022 +0900
+++ b/thesis.fdb_latexmk	Thu Feb 17 17:33:16 2022 +0900
@@ -1,9 +1,9 @@
 # Fdb version 3
-["dvipdf"] 1643566381 "thesis.dvi" "thesis.pdf" "thesis" 1643566382
-  "thesis.dvi" 1643566381 36660 68d07515787ce1856acc01282496cd44 "latex"
+["dvipdf"] 1645086045 "thesis.dvi" "thesis.pdf" "thesis" 1645086047
+  "thesis.dvi" 1645086045 67276 8eae5b4f056d7130d36afa7834e6f046 "latex"
   (generated)
   "thesis.pdf"
-["latex"] 1643566379 "thesis.tex" "thesis.dvi" "thesis" 1643566382
+["latex"] 1645086042 "thesis.tex" "thesis.dvi" "thesis" 1645086047
   "/usr/local/texlive/2018/texmf-dist/fonts/map/fontname/texfonts.map" 1511824771 3332 103109f5612ad95229751940c61aada0 ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/jis/jis.tfm" 1480098698 468 53f854284f6afa6c36aaa2d1090ecc12 ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/jis/jisg.tfm" 1480098698 468 53f854284f6afa6c36aaa2d1090ecc12 ""
@@ -12,6 +12,7 @@
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm" 1480098698 1004 54797486969f23fa377b128694d548df ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmbx10.tfm" 1480098701 1328 c834bbb027764024c09d3d2bf908b5f0 ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmbx12.tfm" 1480098701 1324 c910af8c371558dc20f2d7822f66fe64 ""
+  "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmcsc10.tfm" 1480098701 1300 63a6111ee6274895728663cf4b4e7e81 ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmr12.tfm" 1480098701 1288 655e228510b4c2a1abe905c368440826 ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmr17.tfm" 1480098701 1292 296a67155bdbfc32aa9c636f21e91433 ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmr8.tfm" 1480098701 1292 21c1c5bfeaebccffdb478fd231a0997d ""
@@ -19,12 +20,18 @@
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmss10.tfm" 1480098701 1316 b636689f1933f24d1294acdf6041daaa ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmss12.tfm" 1480098701 1324 37b971caf729d7edd9cbb9f9b0ea76eb ""
   "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmss17.tfm" 1480098701 1320 ed93d62c5f2c16343826001f03341dbc ""
+  "/usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmtt10.tfm" 1480098701 768 1321e9409b4137d6fb428ac9dc956269 ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty" 1480098820 26750 ce139c05a983e19ddca355b43e29c395 ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty" 1480098820 3457 d9077efe6b74c5a094199256af8d7d9a ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/algorithms/algorithm.sty" 1480098820 3249 15763257e50278eef5db1952ccde229c ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty" 1523134290 84354 7292177bb735c466b78634ee4efd537e ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty" 1523050425 5161 c004ea5a189d4bdcf42e86754ad75a58 ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1498861448 10663 d7fcc0dc4f35e8998b8cfeef8407d37d ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/float/float.sty" 1480098828 6749 16d2656a1984957e674b149555f1ea1d ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1480098830 1213 620bba36b25224fa9b7e1ccb4ecb76fd ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1480098830 1224 978390e9c2234eab29404bc21b268d1e ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/dvipdfmx.def" 1498427493 10299 c742d2190e924996d2f4e34b541cd5e3 ""
@@ -35,6 +42,10 @@
   "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty" 1523134385 9063 d0a305975932762117cd1f06a582f896 ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty" 1523134385 2591 6404d0c7d28505fb38ce0d86c2e28ae7 ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty" 1523134385 3977 cb9221976ed8a183afad65b59aa8629a ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/jvlisting/jvlisting.sty" 1480098832 5651 47bc11d5bac620ac113bc66db09cf1bf ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg" 1480098833 1827 d72ad54409ca5c1068a1939c63441bd2 ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty" 1480098833 80336 ff90c926c3d7bfdaa3d80ca57123b0bb ""
+  "/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty" 1480098833 77028 c3eb00afb55a32bc13ca8da7f5234377 ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/setspace/setspace.sty" 1480098838 22913 a27d7908fc6f0385466454a966a316eb ""
   "/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty" 1480098842 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
   "/usr/local/texlive/2018/texmf-dist/tex/platex/jsclasses/jslogo.sty" 1487977266 6061 1242b5308ecb0db77c71c1ff6c687ace ""
@@ -55,6 +66,8 @@
   "extractbb -B cropbox -O ./figures/raycast_first.pdf" 0 -1 0 ""
   "extractbb -B cropbox -O ./figures/raycast_second.pdf" 0 -1 0 ""
   "extractbb -B cropbox -O ./figures/raycast_third.pdf" 0 -1 0 ""
+  "extractbb -B cropbox -O ./figures/theta2_unity.png" 0 -1 0 ""
+  "extractbb -B cropbox -O ./figures/theta_unity.png" 0 -1 0 ""
   "extractbb -B cropbox -O ./figures/thetastarpath.pdf" 0 -1 0 ""
   "figures/SpatialPartitioning.pdf" 1643017662 3277 aa7c62017a6f4428d79546e8e43e3074 ""
   "figures/astarpath.pdf" 1636231527 3365 ccadf8df409e3366678fdee84551f333 ""
@@ -70,22 +83,23 @@
   "figures/raycast_first.pdf" 1643528703 2476 b05d3f2a384a058c3775c532f0e83a00 ""
   "figures/raycast_second.pdf" 1643528720 5534 9b544e57c0e4fcbbb654923bc32fd65b ""
   "figures/raycast_third.pdf" 1643529425 5968 c6fee9f2dbb6b507be3db7604b131bf3 ""
+  "figures/theta2_unity.png" 1643789195 95147 d7f2cf62878c376a73ff06151b49caaf ""
+  "figures/theta_unity.png" 1643789192 106134 efdfd4104e99d0899a627d19f60c1d56 ""
   "figures/thetastarpath.pdf" 1636231604 3296 78978cb5d63b40f4f92376c024d34ee0 ""
-  "ie-thesis.sty" 1642942315 2548 5126ff0c0932e1dbe0c1fa37817d5157 ""
+  "ie-thesis.sty" 1643622162 2540 3ec4e60ecdf7cb767f4df7b4f585f6c9 ""
   "jsreport.cls" 1642446908 63448 5bfb23a65bf063fb693d67c05728f485 ""
-  "text/Eabstract.texi" 1638844000 258 214b10e0f0e1d79ff55f54a4d497eab1 ""
-  "text/Jabstract.texi" 1638843444 206 c27bb61bf7e0846017107a2271749071 ""
-  "text/chapter2.texi" 1643475889 7088 4c6021b9e79068d37b9d004123611028 ""
-  "text/chapter3.texi" 1643566372 8833 138a3e2d569b137f8df3397bda598c99 ""
-  "text/introduction.texi" 1643216326 3103 eb74b47784efb7d18f940070ee222f8d ""
-  "text/reference.aux" 1643566381 487 faf44e3da1e58acfbca404cccc8c1ccb ""
-  "text/reference.tex" 0 -1 0 ""
-  "thesis.aux" 1643566381 4223 2086ed020f1f341dc800e82ea819bca2 ""
-  "thesis.tex" 1643566376 1106 7ffaf418b8f681642e0aa0d489ab10e0 ""
-  "thesis.toc" 1643566381 1317 cb73bfb735ea72e00f8f0020626668ce ""
+  "text/Eabstract.texi" 1644146667 735 80d4e1fa6c66e2bb09e6de4f80ab2be2 ""
+  "text/Jabstract.texi" 1645078736 787 30211cede92f41f775627dafcc80be2c ""
+  "text/chapter2.texi" 1645086036 9175 e252cdd106328d74ae1e0ab6d73d9a02 ""
+  "text/chapter3.texi" 1645086034 16156 54a853f3dec21d1bec9fb687548f23ac ""
+  "text/introduction.texi" 1645083109 2827 d1e9c39bdbfe3dda22f01d26628a5795 ""
+  "text/reference.texi" 1645018063 696 c922a1c356349b24263ec54a4b91d519 ""
+  "thesis.aux" 1645086045 5266 ba35ace68d303fb79f20c36e61dec79a ""
+  "thesis.tex" 1645086038 3125 0f15bff643525319bbd4d8c134a92eda ""
+  "thesis.toc" 1645086045 1463 4ead5691c0af2d41ff0b73130b93052c ""
   (generated)
   "thesis.toc"
+  "thesis.log"
+  "text/reference.aux"
+  "thesis.aux"
   "thesis.dvi"
-  "thesis.log"
-  "thesis.aux"
-  "text/reference.aux"
--- a/thesis.fls	Tue Feb 01 08:02:54 2022 +0900
+++ b/thesis.fls	Thu Feb 17 17:33:16 2022 +0900
@@ -54,10 +54,26 @@
 INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty
 INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
 INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/jvlisting/jvlisting.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/jvlisting/jvlisting.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithms/algorithm.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithms/algorithm.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/float/float.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/float/float.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
+INPUT /usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
 INPUT thesis.aux
 INPUT thesis.aux
-INPUT ./text/reference.aux
-INPUT ./text/reference.aux
 OUTPUT thesis.aux
 INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
 INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/amsfonts/cmextra/cmex7.tfm
@@ -106,14 +122,12 @@
 INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmss12.tfm
 INPUT ./text/chapter2.texi
 INPUT ./text/chapter2.texi
-INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/standard/tgoth10.tfm
-INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/jis/jisg.tfm
-INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmss12.tfm
 INPUT ./figures/openal.pdf
 INPUT extractbb -B cropbox -O ./figures/openal.pdf
 INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/standard/tmin10.tfm
 INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/jis/jis.tfm
 INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmr9.tfm
+INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmcsc10.tfm
 INPUT ./figures/noSpatialPartitioning.pdf
 INPUT extractbb -B cropbox -O ./figures/noSpatialPartitioning.pdf
 INPUT ./figures/SpatialPartitioning.pdf
@@ -138,11 +152,21 @@
 INPUT extractbb -B cropbox -O ./figures/raycast_third.pdf
 INPUT ./figures/raycast.png
 INPUT extractbb -B cropbox -O ./figures/raycast.png
+INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/standard/tgoth10.tfm
+INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/jis/jisg.tfm
+INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmss12.tfm
 INPUT ./figures/astarpath.pdf
 INPUT extractbb -B cropbox -O ./figures/astarpath.pdf
 INPUT ./figures/thetastarpath.pdf
 INPUT extractbb -B cropbox -O ./figures/thetastarpath.pdf
-OUTPUT ./text/reference.aux
+INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/public/cm/cmtt10.tfm
+INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/standard/tmin10.tfm
+INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/standard/tgoth10.tfm
+INPUT /usr/local/texlive/2018/texmf-dist/fonts/tfm/ptex-fonts/jis/jisg.tfm
+INPUT ./figures/theta_unity.png
+INPUT extractbb -B cropbox -O ./figures/theta_unity.png
+INPUT ./figures/theta2_unity.png
+INPUT extractbb -B cropbox -O ./figures/theta2_unity.png
+INPUT ./text/reference.texi
+INPUT ./text/reference.texi
 INPUT thesis.aux
-INPUT ./text/reference.aux
-INPUT ./text/reference.aux
--- a/thesis.log	Tue Feb 01 08:02:54 2022 +0900
+++ b/thesis.log	Thu Feb 17 17:33:16 2022 +0900
@@ -1,4 +1,4 @@
-This is e-pTeX, Version 3.14159265-p3.8.0-180226-2.6 (utf8.euc) (TeX Live 2018) (preloaded format=platex 2019.4.9)  31 JAN 2022 03:12
+This is e-pTeX, Version 3.14159265-p3.8.0-180226-2.6 (utf8.euc) (TeX Live 2018) (preloaded format=platex 2019.4.9)  17 FEB 2022 17:20
 entering extended mode
  restricted \write18 enabled.
  file:line:error style messages enabled.
@@ -149,83 +149,148 @@
 \f@nch@O@erf=\skip53
 \f@nch@O@olf=\skip54
 \f@nch@O@orf=\skip55
+)) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty
+\lst@mode=\count105
+\lst@gtempboxa=\box45
+\lst@token=\toks21
+\lst@length=\count106
+\lst@currlwidth=\dimen135
+\lst@column=\count107
+\lst@pos=\count108
+\lst@lostspace=\dimen136
+\lst@width=\dimen137
+\lst@newlines=\count109
+\lst@lineno=\count110
+\lst@maxwidth=\dimen138
+ (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty
+File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz)
+\c@lstnumber=\count111
+\lst@skipnumbers=\count112
+\lst@framebox=\box46
+) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg
+File: listings.cfg 2015/06/04 1.6 listings configuration
 ))
+Package: listings 2015/06/04 1.6 (Carsten Heinz)
+ (/usr/local/texlive/2018/texmf-dist/tex/latex/jvlisting/jvlisting.sty
+Package: jvlisting 2011/11/17 v0.7 Formatted Program Listings
+\jvl@idt=\count113
+\jvl@tmphyphenchar=\count114
+\jvl@fileinput=\read1
+\listingskipamount=\skip56
+\listingindent=\dimen139
+\prelistingpenalty=\count115
+\listingpenalty=\count116
+\postlistingpenalty=\count117
+) (/usr/local/texlive/2018/texmf-dist/tex/latex/algorithms/algorithm.sty
+Package: algorithm 2009/08/24 v0.1 Document Style `algorithm' - floating environment
+ (/usr/local/texlive/2018/texmf-dist/tex/latex/float/float.sty
+Package: float 2001/11/08 v1.3d Float enhancements (AL)
+\c@float@type=\count118
+\float@exts=\toks22
+\float@box=\box47
+\@float@everytoks=\toks23
+\@floatcapt=\box48
+) (/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty
+Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
+)
+\@float@every@algorithm=\toks24
+\c@algorithm=\count119
+) (/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
+Package: algpseudocode 
+ (/usr/local/texlive/2018/texmf-dist/tex/latex/algorithmicx/algorithmicx.sty
+Package: algorithmicx 2005/04/27 v1.2 Algorithmicx
+
+Document Style algorithmicx 1.2 - a greatly improved `algorithmic' style
+\c@ALG@line=\count120
+\c@ALG@rem=\count121
+\c@ALG@nested=\count122
+\ALG@tlm=\skip57
+\ALG@thistlm=\skip58
+\c@ALG@Lnr=\count123
+\c@ALG@blocknr=\count124
+\c@ALG@storecount=\count125
+\c@ALG@tmpcounter=\count126
+\ALG@tmplength=\skip59
+)
+Document Style - pseudocode environments for use with the `algorithmicx' style
+)
 
 LaTeX Warning: Unused global option(s):
     [title].
 
-(./thesis.aux (./text/reference.aux))
+(./thesis.aux)
 \openout1 = `thesis.aux'.
 
-LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 16.
-LaTeX Font Info:    ... okay on input line 16.
-LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 16.
-LaTeX Font Info:    ... okay on input line 16.
-LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 16.
-LaTeX Font Info:    ... okay on input line 16.
-LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 16.
-LaTeX Font Info:    ... okay on input line 16.
-LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 16.
-LaTeX Font Info:    ... okay on input line 16.
-LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 16.
-LaTeX Font Info:    ... okay on input line 16.
-LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 16.
-LaTeX Font Info:    ... okay on input line 16.
-LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 16.
-LaTeX Font Info:    ... okay on input line 16.
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 38.
+LaTeX Font Info:    ... okay on input line 38.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 38.
+LaTeX Font Info:    ... okay on input line 38.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 38.
+LaTeX Font Info:    ... okay on input line 38.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 38.
+LaTeX Font Info:    ... okay on input line 38.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 38.
+LaTeX Font Info:    ... okay on input line 38.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 38.
+LaTeX Font Info:    ... okay on input line 38.
+LaTeX Font Info:    Checking defaults for JY1/mc/m/n on input line 38.
+LaTeX Font Info:    ... okay on input line 38.
+LaTeX Font Info:    Checking defaults for JT1/mc/m/n on input line 38.
+LaTeX Font Info:    ... okay on input line 38.
+\c@lstlisting=\count127
 LaTeX Font Info:    Font shape `JY1/mc/m/n' will be
-(Font)              scaled to size 6.72699pt on input line 17.
+(Font)              scaled to size 6.72699pt on input line 39.
 LaTeX Font Info:    Font shape `JY1/mc/m/n' will be
-(Font)              scaled to size 4.805pt on input line 17.
+(Font)              scaled to size 4.805pt on input line 39.
 LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <10> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 17.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 39.
 LaTeX Font Info:    Font shape `JT1/gt/m/n' will be
-(Font)              scaled to size 9.60999pt on input line 17.
+(Font)              scaled to size 9.60999pt on input line 39.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <10> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 17.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 39.
 LaTeX Font Info:    Font shape `JY1/gt/m/n' will be
-(Font)              scaled to size 9.60999pt on input line 17.
+(Font)              scaled to size 9.60999pt on input line 39.
 LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <14.4> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 17.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 39.
 LaTeX Font Info:    Font shape `JT1/gt/m/n' will be
-(Font)              scaled to size 13.83836pt on input line 17.
+(Font)              scaled to size 13.83836pt on input line 39.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <14.4> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 17.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 39.
 LaTeX Font Info:    Font shape `JY1/gt/m/n' will be
-(Font)              scaled to size 13.83836pt on input line 17.
+(Font)              scaled to size 13.83836pt on input line 39.
 LaTeX Font Info:    Font shape `JT1/mc/bx/n' in size <17.28> not available
-(Font)              Font shape `JT1/gt/m/n' tried instead on input line 17.
+(Font)              Font shape `JT1/gt/m/n' tried instead on input line 39.
 LaTeX Font Info:    Font shape `JT1/gt/m/n' will be
-(Font)              scaled to size 16.60605pt on input line 17.
+(Font)              scaled to size 16.60605pt on input line 39.
 LaTeX Font Info:    Font shape `JY1/mc/bx/n' in size <17.28> not available
-(Font)              Font shape `JY1/gt/m/n' tried instead on input line 17.
+(Font)              Font shape `JY1/gt/m/n' tried instead on input line 39.
 LaTeX Font Info:    Font shape `JY1/gt/m/n' will be
-(Font)              scaled to size 16.60605pt on input line 17.
+(Font)              scaled to size 16.60605pt on input line 39.
 File: ./figures/logo_u-ryukyu.jpg Graphic file (type bmp)
 <./figures/logo_u-ryukyu.jpg>
  [1
 
 ]
 LaTeX Font Info:    Font shape `JT1/mc/m/n' will be
-(Font)              scaled to size 11.53198pt on input line 17.
+(Font)              scaled to size 11.53198pt on input line 39.
 LaTeX Font Info:    Font shape `JY1/mc/m/n' will be
-(Font)              scaled to size 11.53198pt on input line 17.
+(Font)              scaled to size 11.53198pt on input line 39.
  (./text/Jabstract.texi) [2] (./text/Eabstract.texi) [3]
 LaTeX Font Info:    Font shape `JT1/mc/m/n' will be
-(Font)              scaled to size 23.90964pt on input line 20.
+(Font)              scaled to size 23.90964pt on input line 42.
 LaTeX Font Info:    Font shape `JY1/mc/m/n' will be
-(Font)              scaled to size 23.90964pt on input line 20.
+(Font)              scaled to size 23.90964pt on input line 42.
 LaTeX Font Info:    Font shape `JT1/gt/m/n' will be
-(Font)              scaled to size 23.90964pt on input line 20.
+(Font)              scaled to size 23.90964pt on input line 42.
 LaTeX Font Info:    Font shape `JY1/gt/m/n' will be
-(Font)              scaled to size 23.90964pt on input line 20.
- (./thesis.toc)
+(Font)              scaled to size 23.90964pt on input line 42.
+ (./thesis.toc [4
+
+])
 \tf@toc=\write3
 \openout3 = `thesis.toc'.
 
- (./text/introduction.texi [0
-
-]
+ (./text/introduction.texi [0]
 第1章
 LaTeX Font Info:    Font shape `JT1/mc/m/n' will be
 (Font)              scaled to size 19.9311pt on input line 1.
@@ -239,41 +304,42 @@
 (Font)              scaled to size 13.83836pt on input line 2.
 LaTeX Font Info:    Font shape `JY1/mc/m/n' will be
 (Font)              scaled to size 13.83836pt on input line 2.
-
-LaTeX Warning: Reference `NiaR' on page 1 undefined on input line 5.
-
 ) [1
 
 ] [2] (./text/chapter2.texi
 第2章
-LaTeX Font Info:    Font shape `JT1/gt/m/n' will be
-(Font)              scaled to size 11.53198pt on input line 3.
-LaTeX Font Info:    Font shape `JY1/gt/m/n' will be
-(Font)              scaled to size 11.53198pt on input line 3.
 File: ./figures/openal.pdf Graphic file (type pdf)
 <./figures/openal.pdf>
 LaTeX Font Info:    Font shape `JT1/mc/m/n' will be
-(Font)              scaled to size 8.64899pt on input line 11.
+(Font)              scaled to size 8.64899pt on input line 10.
 LaTeX Font Info:    Font shape `JY1/mc/m/n' will be
-(Font)              scaled to size 8.64899pt on input line 11.
+(Font)              scaled to size 8.64899pt on input line 10.
 [3
 
 
-]
-
-LaTeX Warning: Citation `Dijkstra' on page 4 undefined on input line 32.
+] [4]
+LaTeX Font Info:    Font shape `JT1/mc/m/sc' in size <10> not available
+(Font)              Font shape `JT1/mc/m/n' tried instead on input line 53.
+LaTeX Font Info:    Font shape `JT1/mc/m/n' will be
+(Font)              scaled to size 9.60999pt on input line 53.
+LaTeX Font Info:    Font shape `JY1/mc/m/sc' in size <10> not available
+(Font)              Font shape `JY1/mc/m/n' tried instead on input line 53.
+LaTeX Font Info:    Font shape `JY1/mc/m/n' will be
+(Font)              scaled to size 9.60999pt on input line 53.
+ [5]
+Overfull \vbox (16.62811pt too high) has occurred while \output is active []
 
-[4]
+ [6]
 
-./text/chapter2.texi:41: Package inputenc Error: Unicode character ^^H (U+8)
+./text/chapter2.texi:102: Package inputenc Error: Unicode character ^^H (U+8)
 (inputenc)                not set up for use with LaTeX.
 
 See the inputenc package documentation for explanation.
 Type  H <return>  for immediate help.
  ...                                              
                                                   
-l.41 ...同時に空間分割を用いた最適化がなされる^^H
-                                                 場合が多い。
+l.102 ...同時に空間分割を用いた最適化がなされる^^H
+                                                  場合が多い.
 You may provide a definition with
 \DeclareUnicodeCharacter 
 
@@ -283,108 +349,135 @@
 <./figures/SpatialPartitioning.pdf>
 File: ./figures/octree_Level0.pdf Graphic file (type pdf)
 <./figures/octree_Level0.pdf>
+
+Overfull \hbox (2.84744pt too wide) in paragraph at lines 131--133
+ [][] 
+ []
+
 File: ./figures/octree_Level1.pdf Graphic file (type pdf)
 <./figures/octree_Level1.pdf>
+
+Overfull \hbox (2.84744pt too wide) in paragraph at lines 137--138
+ [][] 
+ []
+
 File: ./figures/octree_Level2.pdf Graphic file (type pdf)
 <./figures/octree_Level2.pdf>
-[5]) (./text/chapter3.texi [6]
-第3章
-
-LaTeX Warning: Reference `system_kousei' on page 7 undefined on input line 14.
-
 
-LaTeX Warning: Reference `ksa_flow' on page 7 undefined on input line 17.
+Overfull \hbox (2.84744pt too wide) in paragraph at lines 143--144
+ [][] 
+ []
 
-[7
-
-]
+[7]) (./text/chapter3.texi [8]
+第3章
 File: ./figures/flow.pdf Graphic file (type pdf)
 <./figures/flow.pdf>
-
+[9
 
-LaTeX Warning: Citation `sabin' on page 8 undefined on input line 34.
-
-[8]
-./text/chapter3.texi:38: Missing $ inserted.
+] [10]
+./text/chapter3.texi:36: Missing $ inserted.
 <inserted text> 
                 $
-l.38 
+l.36 
      
 I've inserted a begin-math/end-math symbol since I think
 you left one out. Proceed, with fingers crossed.
 
 
-./text/chapter3.texi:44: LaTeX Error: Bad math environment delimiter.
+./text/chapter3.texi:42: LaTeX Error: Bad math environment delimiter.
 
 See the LaTeX manual or LaTeX Companion for explanation.
 Type  H <return>  for immediate help.
  ...                                              
                                                   
-l.44 \end{math}
+l.42 \end{math}
                
 Your command was ignored.
 Type  I <command> <return>  to replace it with another command,
 or  <return>  to continue without it.
 
-
-LaTeX Warning: Reference `' on page 9 undefined on input line 49.
-
 File: ./figures/quad_div.pdf Graphic file (type pdf)
 <./figures/quad_div.pdf>
-[9]
+[11]
 File: ./figures/raycast_first.pdf Graphic file (type pdf)
 <./figures/raycast_first.pdf>
+
+Overfull \hbox (2.84744pt too wide) in paragraph at lines 72--74
+ [][] 
+ []
+
 File: ./figures/raycast_second.pdf Graphic file (type pdf)
 <./figures/raycast_second.pdf>
+
+Overfull \hbox (2.84744pt too wide) in paragraph at lines 78--79
+ [][] 
+ []
+
 File: ./figures/raycast_third.pdf Graphic file (type pdf)
 <./figures/raycast_third.pdf>
+
+Overfull \hbox (2.84744pt too wide) in paragraph at lines 84--85
+ [][] 
+ []
+
 File: ./figures/raycast.png Graphic file (type bmp)
 <./figures/raycast.png>
- [10]
-
-LaTeX Warning: Citation `ThetaStar' on page 11 undefined on input line 108.
-
+[12]
+LaTeX Font Info:    Font shape `JT1/gt/m/n' will be
+(Font)              scaled to size 11.53198pt on input line 107.
+LaTeX Font Info:    Font shape `JY1/gt/m/n' will be
+(Font)              scaled to size 11.53198pt on input line 107.
 File: ./figures/astarpath.pdf Graphic file (type pdf)
 <./figures/astarpath.pdf>
 File: ./figures/thetastarpath.pdf Graphic file (type pdf)
 <./figures/thetastarpath.pdf>
-
-./text/chapter3.texi:127: LaTeX Error: Unknown float option `H'.
-
-See the LaTeX manual or LaTeX Companion for explanation.
-Type  H <return>  for immediate help.
- ...                                              
-                                                  
-l.127 \begin{table}[H]
-                      
-Option `H' ignored and `p' used.
-
-) [11] [12]
+ [13]
+LaTeX Font Info:    Font shape `JT1/mc/m/n' will be
+(Font)              scaled to size 6.72699pt on input line 161.
+LaTeX Font Info:    Font shape `JT1/gt/m/n' will be
+(Font)              scaled to size 8.64899pt on input line 161.
+LaTeX Font Info:    Font shape `JY1/gt/m/n' will be
+(Font)              scaled to size 8.64899pt on input line 161.
+ [14] [15] [16] [17]
+File: ./figures/theta_unity.png Graphic file (type bmp)
+<./figures/theta_unity.png>
+File: ./figures/theta2_unity.png Graphic file (type bmp)
+<./figures/theta2_unity.png>
+) [18]
 第4章
-[13
+[19
 
 
 ]
 第5章
-[14
+[20
 
-]
-\openout2 = `./text/reference.aux'.
+] (./text/reference.texi
+Underfull \hbox (badness 2846) in paragraph at lines 2--3
+[]\OT1/cmr/m/n/10 SQUARE ENIX, NieR:Automata | SQUARE ENIX, $\OT1/cmtt/m/n/10 https : / / www . jp .
+ []
+
+
+Underfull \hbox (badness 3635) in paragraph at lines 5--6
+[]\OT1/cmr/m/n/10 "Acoustics En-gi-neer-ing - Sabin", $\OT1/cmtt/m/n/10 https : / / www . acoustics-[]engineering .
+ []
 
 
-No file ./text/reference.tex.
-(./thesis.aux (./text/reference.aux))
+Underfull \hbox (badness 10000) in paragraph at lines 5--6
+\OT1/cmtt/m/n/10 com / html / sabin . html# : [] : text = Sabin % 20is % 20a % 20powerful % 20CAD ,[] a %
+ []
 
-LaTeX Warning: There were undefined references.
+) [21
 
- ) 
+
+] (./thesis.aux) ) 
 Here is how much of TeX's memory you used:
- 1959 strings out of 493281
- 24387 string characters out of 6145042
- 96400 words of memory out of 5000000
- 5854 multiletter control sequences out of 15000+600000
- 16047 words of font info for 75 fonts, out of 8000000 for 9000
+ 4257 strings out of 493281
+ 55617 string characters out of 6145042
+ 228414 words of memory out of 5000000
+ 8116 multiletter control sequences out of 15000+600000
+ 16986 words of font info for 80 fonts, out of 8000000 for 9000
  934 hyphenation exceptions out of 8191
- 34i,11n,45p,438b,371s stack positions out of 5000i,500n,10000p,200000b,80000s
+ 34i,12n,45p,361b,1833s stack positions out of 5000i,500n,10000p,200000b,80000s
 
-Output written on thesis.dvi (18 pages, 36660 bytes).
+Output written on thesis.dvi (26 pages, 67276 bytes).
Binary file thesis.pdf has changed
Binary file thesis.synctex.gz has changed
--- a/thesis.tex	Tue Feb 01 08:02:54 2022 +0900
+++ b/thesis.tex	Thu Feb 17 17:33:16 2022 +0900
@@ -1,8 +1,30 @@
 \documentclass[title,12pt]{jsreport}
 \usepackage{ie-thesis}
+\usepackage{listings,jvlisting}
+\usepackage{algorithm}
+\usepackage[noend]{algpseudocode}
+%ここからソースコードの表示に関する設定
+\lstset{
+  basicstyle={\ttfamily},
+  identifierstyle={\small},
+  commentstyle={\smallitshape},
+  keywordstyle={\small\bfseries},
+  ndkeywordstyle={\small},
+  stringstyle={\small\ttfamily},
+  frame={tb},
+  breaklines=true,
+  columns=[l]{fullflexible},
+  numbers=left,
+  xrightmargin=0zw,
+  xleftmargin=3zw,
+  numberstyle={\scriptsize},
+  stepnumber=1,
+  numbersep=1zw,
+  lineskip=-0.5ex
+}
+\jtitle{音による状況変化を用いたゲーム実現のための空間音響システムの開発}
+\title{Development of a spatial audio system for realizing games that use sound to change the situation}
 
-\jtitle{日本語タイトル(2行以内)○○○○○○○○○○○○○○○○○○○○○○○○○○○○}
-\title{Title in English○○○○○○○○○○○○○○○○○○○○○○○○○○○○}
 
 \affiliation{琉球大学工学部工学科知能情報コース}
 \studentid{185761E}
@@ -32,12 +54,19 @@
 
 \clearpage
 
-\chapter{まとめと今後の展望}
+\chapter{まとめ}
+本研究では空間音響の中の反射と回折を主に取り扱いシステムを構築した.
+経路探索によって音の回り込みを計算することができるため,序論で述べたような空間音響をゲームロジックに取り入れたゲームの実現も可能であると考えられる.
 
+しかし現時点での欠点として,経路探索の再計算は一定間隔で行なっているため,回折経路が変化するようなオブジェクトの変化が起きても,再計算の時間になるまで音響が変化しない問題がある.これは回折経路が変化するかどうかを検知し,即座に再計算を行うようにする必要がある.
+
+別の問題として現実世界での回折経路は一つではなく複数存在する場合もあり,本システムでは最短で到達する一つの回折経路のみを計算しているため,最短の回折経路が別の経路になった際に音の方向が急激に変わってしまう現象が存在する.そのため,回折経路を複数計算するか回折経路が一つのみになるような環境に制限したりなどの工夫が必要だ.
 \chapter{謝辞}
-
+本論文の制作にあたり,ご多忙の中にもかかわらず研究の方向性について幾度も道を示してくださった指導教官の河野真治准教授に深く感謝いたします.
+また,研究を行うにあたって精神的にも支えになってくれた研究室の全メンバーに感謝を申し上げます.
 % reference
-\include{./text/reference}
+\clearpage
+\input{./text/reference.texi}
 
 %付録がある場合のみ
 %\appendix
--- a/thesis.toc	Tue Feb 01 08:02:54 2022 +0900
+++ b/thesis.toc	Thu Feb 17 17:33:16 2022 +0900
@@ -1,19 +1,22 @@
 \contentsline {chapter}{\numberline {第1章}序論}{1}
 \contentsline {section}{\numberline {1.1}空間音響をゲームロジックに取り入れる}{1}
-\contentsline {chapter}{\numberline {第2章}関連研究および基礎概念}{3}
-\contentsline {section}{\numberline {2.1}基礎概念について}{3}
-\contentsline {subsection}{\numberline {2.1.1}OpenALについて}{3}
-\contentsline {subsection}{\numberline {2.1.2}Unityについて}{4}
-\contentsline {subsection}{\numberline {2.1.3}レイキャストについて}{4}
-\contentsline {subsection}{\numberline {2.1.4}Any-angle path planning}{4}
-\contentsline {subsection}{\numberline {2.1.5}空間分割}{5}
-\contentsline {subsection}{\numberline {2.1.6}8分木}{6}
-\contentsline {chapter}{\numberline {第3章}Kingdom Spatial Audio}{7}
-\contentsline {section}{\numberline {3.1}概要}{7}
-\contentsline {section}{\numberline {3.2}システム構成}{7}
-\contentsline {section}{\numberline {3.3}システムの流れ}{8}
-\contentsline {section}{\numberline {3.4}反射の再現}{8}
-\contentsline {section}{\numberline {3.5}回折の再現}{10}
-\contentsline {section}{\numberline {3.6}経路探索のサブスレッド化}{11}
-\contentsline {chapter}{\numberline {第4章}まとめと今後の展望}{13}
-\contentsline {chapter}{\numberline {第5章}謝辞}{14}
+\contentsline {chapter}{\numberline {第2章}基礎概念}{3}
+\contentsline {section}{\numberline {2.1}OpenALについて}{3}
+\contentsline {section}{\numberline {2.2}Unityについて}{4}
+\contentsline {section}{\numberline {2.3}レイキャストについて}{4}
+\contentsline {section}{\numberline {2.4}Any-angle path planning}{4}
+\contentsline {section}{\numberline {2.5}Theta*アルゴリズム}{5}
+\contentsline {section}{\numberline {2.6}空間分割}{7}
+\contentsline {section}{\numberline {2.7}8分木}{8}
+\contentsline {chapter}{\numberline {第3章}Kingdom Spatial Audio}{9}
+\contentsline {section}{\numberline {3.1}概要}{9}
+\contentsline {section}{\numberline {3.2}システムの流れ}{9}
+\contentsline {section}{\numberline {3.3}反射の再現}{10}
+\contentsline {section}{\numberline {3.4}回折の再現}{13}
+\contentsline {subsection}{\numberline {3.4.1}Any-angle path planning}{13}
+\contentsline {section}{\numberline {3.5}8分木によるグラフの構築}{13}
+\contentsline {section}{\numberline {3.6}経路探索のサブスレッド化}{14}
+\contentsline {section}{\numberline {3.7}レイキャストの実行結果}{18}
+\contentsline {chapter}{\numberline {第4章}まとめ}{19}
+\contentsline {chapter}{\numberline {第5章}謝辞}{20}
+\contentsline {chapter}{参考文献}{21}