61 |
IMPLEMENTERING AV PHONGLJUSSÄTTNINGI 2D-SPELMILJÖSetterberg, Joel, Elsgard, Jonatan January 2014 (has links)
Under de senaste åren har en ny trend inom spelindustrin uppstått då en stor del av spelen har gått tillbaka till de tvådimensionella miljöerna som var vanligare i tv-spelens barndom, detta tack vare att mobiltelefoner och deras spel har tagit allt större plats på marknaden och de är ofta tvådimensionella på grund av sin begränsade hårdvara. De tvådimensionella spelen har enligt tradition inte haft någon dynamisk ljussättning, utan de har bestått utav färdig grafik med förutbestämda intensiteter vilket gör att spelen kan se platta ut. Men inom andra områden av spelindustrin, framförallt tredimensionella spel, har utvecklingen av dynamiska ljussättningsmetoder kommit långt. Problemet med dessa metoder är att de kräver objektens normaler, vilka normalt inte finns tillgängligt i tvådimensionella bilder. Idag är mobiltelefonerna kraftfulla och klarar av mycket tyngre beräkningar än vad de gjorde för bara några år sedan. Därför undersökte vi möjligheten att implementera dynamisk ljussättning i ett tvådimensionellt spel på androidbaserade mobiltelefoner. För att genomföra detta krävdes också att vi undersökte metoder för att generera normaler för tvådimensionell grafik. För att ett fullständigt spel skulle kunna skapas så implementerades också saker som kollisionshantering, artificiell intelligens och procedurell generering av banor. / In recent years, a new trend in the gaming industry has emerged since a large part of the games have gone back to the two-dimensional environments that were more common in the early days of the video games history . This is due to mobile phones and their games have taken more and more space on the market and they are often two-dimensional because of the limited harware. The twodimensional games have traditionally never had any dynamic lighting , they have consisted of premade graphics with predetermined intensities , which means that the games may look flat. But in other areas within the gaming industry, especially three-dimensional games, the evolution of dynamic lighting techniques have come a long way. The problem with these methods is that they require the object's normals, which are not normally available in two-dimensional images. Today mobile phones are powerful and capable of much heavier computations than they did just a few years ago. Therefore, we examined the possibility of implementing dynamic lighting in a twodimensional games on Androidbased mobile phones. To accomplish this it required that we investigated methods to generate normals for two-dimensional graphics. In order to create a full game we also implemented features such as collision handling, artificial intelligence and procedural generation of maps.
|
62 |
INTERACTIVE GALLERYBasar, Murat January 2012 (has links)
Today, there are many high-level interactive applications and products around the world which are developed by using programming languages or software. Basically, games, virtual museums, educational applications, interactive architectural products are the simplest examples about these interactive solutions. In this thesis, interactive gallery means moving objects in a three-dimensional room. Objects can be re-placed by using keyboard keys in this three-dimensional room. Thus, user can move these interactive objects in accordance with intended purpose. Interactive gallery is similar with a room that has furniture, door and windows. Also, this room includes interactive objects in it. The main focal point is about how these objects can be displayed interactively and how different methods are used, when these processes are started to be made. This thesis helps to solve these questions. Interactive gallery bases on model loading structure and on the following thesis, this process is parted. It starts with 3D modelling, continuous with model loading and it ends with key implementation.
|
63 |
Graphics’ Card Utility withWebGL and N-Buffering : Improving performance using N-buffer strategies with WebGL / Kapacitetsutnyttjande av grafikkort med WebGL och N-buffert : Förbättrande av prestanda genom N-buffert strategier med WebGLPalm, Emanuel January 2014 (has links)
This thesis covers the utilization of N buffers in order to reduce resource contention on an abstract WebGL machine, and subsequently freeing up machine processing time. The buffers touched are frame buffers and vertex buffers. The paper also briefly covers the purpose and function of N buffering in relation to graphics and the function of a WebGL machine, the research and production of benchmark prototypes, some relevant benchmark results, and analysis and conclusions. The conclusion is made that the use of N>1 buffering is a potentially viable strategy for increasing WebGL performance, and some theories are outlined and suggestions given for further research to be made for the resolving of how this performance gain may be improved. / Denna uppsats granskar nyttjandet av N buffrar för att minska uppkomsten av resurskonflikter på en abstrakt WebGL maskin, och således frigöra processtid på maskinen i fråga. De typer av buffrar som vidrörs är så kallade frame buffers och vertex buffers. Uppsatsen går också igenom syftet och funktionen hos N buffrar i relation till grafik och funktionen hos en WebGL maskin, förstudien kring och produktionen av prestandatest-prototyper, en del relevanta mätresultat, samt analys och slutsatser. Slutsatsen nås att nyttjandet av N>1 buffrar är en potentiellt gångbar strategi för ökandet av prestanda hos WebGL, och en del teorier presenteras och förslag ges kring ytterligare studier för attöka prestanda ytterligare.
|
64 |
Comparative study of Batch and Instance rendering for static geometry in OpenGL / Jämförelsestudie av Batch och Instance rendering för statisk geometri i OpenGLAlström, Marcus, Andersson, Christoffer January 2023 (has links)
Graphical rendering has use cases in many fields. When rendering in real time, such as in simulations or games, the time to compute each frame is of high importance. An important factor to reducing frame time is decreasing the amount of calls between the processor and graphics card. This is especially important when rendering a large amount of meshes, which is a collection of vertices representing some geometry. Two ways of achieving this are Batch and Instance rendering. This thesis aims to analyze and provide valuable insight into the factors that influence the decision between the techniques for static geometry, which is geometry that does not move. More specifically the thesis will investigate how vertex and mesh count affects the frame time. Both techniques were implemented using C++ and OpenGL and then compared against each other. The results showed that for low vertex amounts Batch rendering has lower frame time. Subsequently, at higher vertex amounts Instance rendering has lower frame time. The exact cut off depends on hardware, but in general the conclusion was that Batch rendering is better for simpler meshes while Instance rendering is better for more complex meshes. / Grafisk rendering är användbart inom många områden. När rendering sker i realtid, som i simulationer eller spel, har frame time vilket är tiden det tar att beräkna varje bildruta stor betydelse. En viktig faktor för att minska frame time är att minska antalet anrop mellan processorn och grafikkortet. Detta är särskilt viktigt vid rendering av en stor mängd meshes, vilket är en samling av noder som representerar geometri. Två sätt att uppnå detta är Batch och Instance rendering. Denna avhandling syftar till att analysera och ge värdefulla insikter i de faktorer som påverkar beslutet mellan teknikerna för statisk geometri, vilket är geometri som inte rör sig. Mer specifikt kommer avhandlingen att undersöka hur antalet noder och meshes påverkar frame time. Båda teknikerna implementerades med hjälp av C++ och OpenGL och jämfördes sedan med varandra. Resultaten visade att för låga antal noder har Batch-rendering kortare frame time. Däremot, vid högre antal noder har Instance rendering kortare frame time. Den exakta gränsen beror på hårdvaran, men den generella slutsatsen var att Batch-rendering är bättre för enklare meshes medan Instance rendering är bättre för mer komplexa meshes.
|
65 |
Real-time Terrain Deformation with Isosurface AlgorithmsNässén, Olle, Leiborn, Edvard January 2019 (has links)
Background. Being able to modify virtual environments can create immersive experiences for video-game players. Storing data as volumetric scalar fields allows for highly modifiable 3D environments that can be converted into GPU-friendly triangles with isosurface algorithms. Using scalar fields and isosurface algorithms can be more computationally expensive and require more data than the more commonly used polygonal models. Objectives. The aim of this thesis is to explore solutions to modifying real-time 3D environments with isosurface algorithms. This will be done in two parts. First in terms of observing how modern games deal with storing scalar fields, researching which isosurface algorithms are being used and how they are being used in games. The second part is to create an application and limit the data storage required while still running at a real-time speed. Methods. There are two methods to achieve the aim. The first is to research and see which data structures and isosurface algorithms are being used in modern games and how they are utilized. The second method will be done by implementation. The implementation will use the GPU through compute shaders and use marching cubes as isosurface algorithm. It will utilize Christopher Dyken’s Histogram Pyramids for stream compaction. Two different versions will be implemented that differ in terms of what data types will be used for storage. The first using the data type char and the second int. Between these two versions, the runtime speed will be measured and compared on two different hardware configurations. Results. Finding good data on what algorithms games use is difficult. Modern games are using scalar fields in many different ways: Some allow almost complete modification of terrain, others only use it for a 3D environment. For data storage, octrees and chunks are two common ways to store the fields. Dual Contouring appears to be the primary isosurface algorithm being used based on the researched games. The results of the implementation were very fast and usable in real time environments for destruction of terrain on a large scale. The less storage intensive variation of this implementation(char) gave faster results on modern hardware but the opposite(int) was true on older hardware. Conclusions. Modifying scalar field terrain is done at a very large scale in modern games. The choice of using Dual Contouring or Marching Cubes depends on the use-case. For areas where sharp features can be important Dual Contouring is the preferred choice. Likely for these reasons Dual Contouring was found to be a popular choice in the studied games. For other areas, like many types of terrain, Marching Cubes is very fast, as can be seen in the implementation. By using the char version of the implementation, interacting with the environment in real-time is possible at high frame-rates.
|
66 |
Mobilutveckling / Mobile developmentJeppsson, Andreas, Snygg, Johan January 2012 (has links)
Det finns flera olika tillvägagångssätt för att göra det möjligt att skapa program som kan exekveras på flera olika plattformar. Detta tillvägagångssätt för utveckling mot flera plattformar, kallas plattformsoberoende utveckling. En av teknikerna för plattformsoberoende utveckling, bygger på att de specifika plattformarna har tillgång till en virtuell maskin som programmet kompileras mot. Den virtuella maskinen översätter sedan koden till plattformens specifika maskinkod. Denna teknik används bland annat av plattformsoberoende språk som Java och .NET-familjen. Andra tekniker som exempelvis förprocessering (eng. Preprocessing), möjliggör plattformsoberoende genom att programmets källkod kompileras olika beroende på vilken plattform som programmet ska exekveras på.Studien hade för avseende att utreda problemen med plattformsoberoende utveckling mellan de mobila plattformarna Android, iOS och Windows Phone 7. Utredningen visade att det vid studiens utförande, inte fanns något ramverk eller annan teknik som till fullo hade stöd för att skapa ett högpresterande mobilspel för målplattformarna. Genom användandet av Mono for Android och XNA skapades ett plattformsoberoende spel för plattformarna med utvecklingsspråket C#. Plattformsoberoendet kunde uppnås tack vare Mono Runtime som är en implementation av Common Language Runtime för Android och iOS. Common Language Runtime är .NET’s plattformsoberoende teknik och är en virtuell maskin.Mobilspelet skapades för att påvisa att utveckling av plattformsoberoende funktionalitet för 2D- och 3D-grafik, användarinmatning och hantering av media, är möjligt. Spelprototypens funktionalitet togs fram genom att undersöka populära mobilspel, ute på marknaden idag. För plattformsoberoende grafik användes en spelmotor vid namn Axiom, för användarinmatningen samt hanteringen av media utvecklades egna lösningar. Med spelet visade studien att det är möjligt att skapa plattformsoberoende, högpresterande spel för plattformarna Android och Windows Phone 7. Att lösningen fungerar även för iOS bevisades bara teoretiskt då Axiom vid studiens tidpunkt inte hade fullt stöd för utveckling till plattformen. Teknikerna som lösningen utnyttjade var en virtuell maskin för varje plattform samt förprocessering som såg till att vissa delar av källkoden kompilerades specifikt för de olika plattformarna.Lösningen som studien presenterar är inte en fullskaligt plattformsoberoende lösning då källkoden innehåller vissa plattformsspecifika delar. Dock har lösningen visat att mycket av koden är plattformsoberoende mellan plattformarna. Det är främst implementationen av användarinmatningen och hanteringen av media som innehåller plattformsspecifik kod. Därför med dessa redan implementerade är det möjligt att nästan helt och hållet skapa ett plattformsoberoende, högpresterande spel för målplattformarna. / Program: Systemarkitekturutbildningen
|
67 |
Implementation of SceneServer : a 3D software assisting developers of computer vision algorithmsBennet, Fredrik, Fenelius, Stefan January 2003 (has links)
<p>The purpose behind this thesis is to develop a software (SceneServer) that can generate data such as images and vertex lists from computer models. These models are placed in a virtual environment and they can be controlled either from a graphical user interface (GUI) or from a MATLAB client. Data can be retrieved and processed in MATLAB. By creating a connection between MATLAB and a 3D environment, computer vision algorithms can be designed and tested swiftly, thus giving the developer a powerful platform. SceneServer allows the user to manipulate, in detail, the models and scenes to be rendered. </p><p>MATLAB communicates with the SceneServer application through a Java library, which is connected to an interface in SceneServer. The graphics are visualised using Open Scene Graph (OSG) that in turn uses OpenGL. OSG is an open source cross-platform scene graph library for visualisation of real-time graphics. OpenGL is a software interface for creating advanced computer graphics in 2D and 3D.</p>
|
68 |
Improving rendering times of Autodesk Maya Fluids using the GPUAndersson, Jonas, Karlsson, David January 2008 (has links)
<p>Fluid simulation is today a hot topic in computer graphics. New highly optimized algorithms have allowed complex systems to be simulated in high speed. This master thesis describes how the graphics processing unit, found in most computer workstations, can be used to optimize the rendering of volumetric fluids. The main aim of the work has been to develop a software that is capable of rendering fluids in high quality and with high performance using OpenGL. The software was developed at Filmgate, a digital effects company in Göteborg, and much time was spent making the interface and the workflow easy to use for people familiar with Autodesk Maya. The project resulted in a standalone rendering application, together with a set of plugins to exchange data between Maya and our renderer.</p><p>Most of the goals have been reached when it comes to rendering features. The performance bottleneck turned out to be reading data from disc and this is an area suitable for future development of the software.</p>
|
69 |
Visualization of a blog search engine index using 3D graphicsNilsson, Malin, Engback, Linus January 2007 (has links)
<p>The purpose of this thesis is to find ways to make the extent and constant movement in the blogosphere visible. An application has been developed using C# and OpenGL. The application is an interactive screensaver to be run on the Windows platform. It visualizes data combining 3D and 2D elements. Geographical data is rendered using a model of the Earth, where the blog posts are constantly updated. Various statistics are displayed to give information on the current state of the blogosphere.</p>
|
70 |
The Visualization and Shadow Analysis for 3D Geographic ObjectsLi, Yu-Cheng 17 August 2007 (has links)
3D GIS is the key point of the development in the area in geospatial information domain. 3D visualization techniques, including 3D terrain data processing, the 3D objects modelling , satellite or air photo image texture, model material, level-of-detail terrain, is already gradually mature and had the outstanding performance in the existing 3D GIS software. But 3D spatial analysis function was still lacking in the field of the 3D spatial data processing.
The goal of this research is to develop a 3D spatial analysis function for sun shadow in horizontal and vertical direction and to construct a system for 3D geographic objects visualization by using MFC and OpenGL as the development kit. It has some fundamental functions including: camera control, selecting a single face of a object, linking to a database, level-of-detail terrain. The shadow volume algorithm was used for 3D shadow visualization, and light tracing algorithm was used to compute a single face¡¦s culling area, finally sunshine formula of four seasons was utilitized to realize the shadow analysis function.
|
Page generated in 0.0289 seconds