Game engines are well known for their use in the gaming industry but are starting to have an impact in other areas as well. Architecture, automotive, and the defence industry are today using these engines to visualise and, to some extent, test their products. In this thesis, we have examined how the game engine Unity could be used for simulating a radar with the purpose of detecting and measuring sea clutter. Following a pre-study examining different implementation approaches, it was decided to use ray tracing. The radar itself is simulated by using the camera to emit rays and having a plane object directly behind it act as a receiver. Rays are then individually traced for each pixel, propagating throughout the scene and saving information such as hit coordinates, distance travelled, and direction. By using the total travel distance of each ray that returned to the receiver, the phase of each ray is calculated. This is then used to compute the total amplitude, which represents the returned signal strength. Using a compute shader, most of the computations are done in parallel on the GPU, enabling millions of rays to be traced. As measuring sea clutter was an objective of the study, tests measuring the ocean were carried out. These used ocean surfaces with two different sea states, using the Phillips spectrum to generate realistic waves. A ship object was then tested in free space and on two different ocean surfaces. The calculated amplitude and the number of rays returned were used to determine the signal strength returned and the RCS of the object. The purpose of this was to compare with other results of sea clutter studied, observed both in the real world and in simulated scenarios, and determine if our approach could be a valid choice for the industry. Some results matched the findings of a similar study that used a professional radar simulation tool called OKTAL. Other results of sea clutter were found to not be realistic due to certain limitations. The current main limitation of our implementation is not being able to trace a large enough ocean surface with the finer details needed for realistic results. However, this could be solved by creating a better implementation. These findings suggest that simulating radar and sea clutter in Unity is a feasible approach worth continuing to explore. / Spelmotorer är välkända för sin användning inom spelindustrin men har också fått genomslag inom andra områden. Arkitektur, fordonsindustrin och försvarsindustrin använder idag dessa verktyg för att visualisera och till viss mån, även testa sina produkter. I detta examensarbete har vi undersökt hur spelmotorn Unity kan användas för att simulera en radar i syfte att detektera och mäta sjöklotter. Efter en förstudie där olika implementeringsmetoder undersöktes, beslutades det att använda strålspårning (eng. ray tracing). Själva radarn simuleras genom att använda kameraobjektet i Unity för att sända ut strålar. Bakom kameran finns ett planobjekt som fungerar som mottagare. Strålar spåras sedan individuellt för varje pixel och sprider sig genom en given scen. Samtidigt sparas information såsom träffkoordinater, den totala färdsträckan samt riktning. Genom att använda det totala färdavståndet för varje stråle som återvänt till mottagaren kan fasen för varje stråle beräknas. Detta kan sedan användas för att beräkna den totala returnerade amplituden, vilket motsvarar den returnerade signalstyrkan. Med hjälp av en "compute shader" kan databeräkningarna göras parallellt av GPU:n vilket underlättar när så många strålar ska spåras. Eftersom syftet med uppsatsen var mätning av simulerat sjöklotter, genomfördes tester för att mäta på ett simulerat hav. Havsytorna hade två olika sjöstadier, vilka genererades med Phillips-spektrumet för att få realistiska vågor. Ett fartygsobjekt testades sedan i frirymd och sedan även i de två olika havsytorna. Amplituden och mängden strålar som returnerades användes för att bestämma den totala returnerade signalstyrkan och "Radar Cross Section" (RCS) för objektet. Syftet med detta var att kunna jämföra med andra studier gällande sjöklotter, både simulerade som verklighetsbaserade och avgöra om vårt tillvägagångssätt kunde resultera i ett användbart verktyg för branschen. De olika amplituder och antalet strålar som vi fick tillbaka varierade beroende på vilka vinklar och havsytor som användes.Vissa resultat var inte realistiska jämfört med verkliga mätningar av sjöklotter. Det beror främst på våra nuvarande begränsningar i att inte kunna spåra en tillräckligt stor och tillräckligt detaljerad havsyta, vilket behövs för att mätningarna ska vara mer realistiska. Däremot matchade vi några resultat med de från en liknande studie, där verktyget OKTAL, som är ett professionellt radarsimuleringsverktyg, användes. Detta i kombination med möjligheterna för en förbättrad implementation tyder på att användningen av en spelmotor som Unity är ett intressant verktyg värd att vidareutforska radarsimuleringar med.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:liu-196263 |
Date | January 2023 |
Creators | Johnsson, Mikael, Bergman, Linus |
Publisher | Linköpings universitet, Programvara och system |
Source Sets | DiVA Archive at Upsalla University |
Language | English |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.003 seconds