Software Development of Visualization Tool for 3D Cameras Martin Stenmarck

Total Page:16

File Type:pdf, Size:1020Kb

Software Development of Visualization Tool for 3D Cameras Martin Stenmarck LiU-ITN-TEK-A--11/021--SE Software development of visualization tool for 3D cameras Martin Stenmarck 2011-04-28 Department of Science and Technology Institutionen för teknik och naturvetenskap Linköping University Linköpings universitet SE-601 74 Norrköping, Sweden 601 74 Norrköping LiU-ITN-TEK-A--11/021--SE Software development of visualization tool for 3D cameras Examensarbete utfört i medieteknik vid Tekniska högskolan vid Linköpings universitet Martin Stenmarck Examinator Stefan Gustavson Norrköping 2011-04-28 Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra- ordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/ © Martin Stenmarck Abstract The visualization is an important and vital tool of describing complex data for an uninitialized user. SICK has developed an array of advanced machine vision cameras all capable of producing large data sets of information at a high rate. Although capable of fast data handling and the ability of controlling robots and other types of controls, the data used for these calculations can be showed for an easy and fast feedback to the users or in a sales situation. The visualization available today, although fairly fast, is limited to a gradient textured model with few tools. Based on OpenGL the current visualization requires a wrapper to handle correctly within .NET applications which is the preferred platform at SICK. This thesis studies the possibility and development of new visualization tool based on .NET capable of adding textures and interaction with the visualization. Since the data derived from the different cameras can occur in so many different ways a robust application ia needed. With the use of Windows presentation Foundation (WPF) framework the ap- plication is divided in three components. The first one is a library capable of reading the correct section of the file and then structuring the data. The sec- ond component is a user control; this allows the visualization to be constructed and displayed with ease within all .NET applications. The third component is a application which make use of the two other components to display and interact with the visualization. The developed visualization can display several different textures and has support for full navigation in the form of zoom, panning and rotation. The application is developed in .NET for easy integration with other applications and tools. WPF has a straightforward way of handling 3d content, however it is mostly used for small elements of 3D not for as large models as provided by the cameras. By subsampling the data set, the loading time can be reduced to an acceptable value. Although visualizing the data in a detailed and interactive way, the WPF-framework is on its knees when handling the larger files. There are several limitations in WPF which indicates the unsuitability as the main graphical engine. Sammanfattning Visualisering är ett viktigt och nödvändigt verktyg för att beskriva komplexa da- ta för en oinitierad användare. SICK har utvecklat en rad avancerade kameror som alla kan producera stora datamängder i hög takt. Även om kamerorna kla- rar av snabb datahantering och kan styra robotar och andra typer av kontroller, kan datan som används för dessa beräkningar även visas för en enkel och snabb v vi återkoppling till användare eller i en säljsituation. Visualisering som finns idag är begränsad till en enkel modell med få verktyg. Denna avhandling studerar möjlig- heten och utvecklingen av ett nytt visualiseringsverktyg. Eftersom datan kommer från olika kameror behövs ett robust och mångsidigt system. Med hjälp av Windows Presentation Foundation (WPF) som ramverk är pro- gramvaran indelad i tre delar. Den första är ett bibliotek som kan läsa rätt del av filen och sedan strukturera data. Den andra komponenten är en kontroll, vilket gör att visualisering kan byggas och visas med lätthet inom alla .NET-applikationer. Den tredje komponenten är en applikation som använder sig av de två andra komponenterna för att visa och interagera med visualiseringen. Den utvecklade visualisering kan visa flera olika texturer och har stöd för full navigering i form av zoom, panorering och rotation. WPF har ett enkelt sätt att hantera 3D-objekt, men det används mestadels för mindre tillämpningar och inte för så stora modeller som tillhandahålls av kamerorna. Genom att sampla ner datamängden, så kan be- lastningen minskas. Även om kraven uppfylls och programvaran är användbar så finns det flera begränsningar i WPF som indikerar att det är en olämplig plattform för denna uppgift. Acknowledgments I want to thank my supervisor at SICK, Andreas Wrangsjö for his guidance and helpful tips along the way of this master thesis. I want to thank Thomas Berglund at SICK for helping me with troubleshooting the code. I would also like to thank everyone at SICK in Linköping, for the opportunity to work with this problem and for interesting insight and discussions. I would like to thank my examiner, Stefan Gustavsson at Linköpings University for providing good directions. I thank Jousef Gabro for reading and providing me with good feedback on the report. I would like to thank Emma Carlsson for supporting and helping me with the presentation of this master thesis. vii Contents 1 Introduction 1 1.1 Background . .1 1.2 Problem . .2 1.3 Purpose and goal . .2 1.4 Thesis outline . .3 1.5 Related work . .4 2 Theory 5 2.1 Visualization . .5 2.2 3D graphics . .6 2.2.1 An introduction . .6 2.2.2 Navigation . .8 2.3 SICK machine vision . 10 2.3.1 Machine vision product family . 10 2.3.2 Data acqusition . 12 2.4 Windows Presentation Foundation . 15 2.4.1 Extensible Application Markup Language . 17 2.4.2 WPF3D . 17 3 Implementation 21 3.1 Language choice . 21 3.2 Software development . 21 3.2.1 XML reader . 21 3.2.2 3D models . 23 3.2.3 Textures . 25 3.2.4 Tools . 26 3.3 User Interface development . 27 4 System overview 29 4.1 Class library . 29 4.2 User control . 30 4.3 Application . 30 4.4 Use case scenario . 31 ix x Contents 5 Results 33 5.1 The new visualizer . 34 5.2 Performance . 35 6 Discussion 37 7 Concluding remarks and future work 39 Bibliography 41 A System Requirement Specification 43 A.1 Introduction . 43 A.1.1 Purpose and goal . 43 A.1.2 Product usage . 43 A.1.3 Product background . 43 A.2 General system idea . 44 A.2.1 Coarse description of the product . 44 A.2.2 Product components . 44 A.2.3 Dependencies . 44 A.2.4 Design philosophy . 45 A.2.5 General requirements on the complete system . 45 A.3 The class library . 45 A.3.1 Initial description of the class library . 45 A.3.2 User interface . 45 A.3.3 Design requirements . 45 A.3.4 Functional requirements for the class library . 46 A.4 The application . 46 A.4.1 Initial description of the application . 46 A.4.2 Design requirements . 46 A.4.3 Functional requirements for system 2 . 47 A.4.4 User interface . 47 A.5 Performance requirements . 47 A.6 Further requirements . 47 A.7 Documentation . 47 B System Design Specification 48 B.1 Introduction . 48 B.1.1 Purpose of this document . 48 B.1.2 Scope of the development project . 48 B.1.3 Definitions . 48 B.1.4 References . 48 B.1.5 Overview of document . 48 B.2 System Archtecture description . 49 B.2.1 Overview of modules . 49 B.2.2 Structure . 49 B.2.3 User interface issues . 50 B.3 Detailed description of components . 50 Contents xi B.3.1 Component Overview . 50 B.3.2 Class library . 50 B.3.3 Desktop Client . 50 B.4 Design decisions and tradeoffs . 51 B.4.1 Windows Presentation Foundation . 51 B.4.2 Triangulation . 52 B.4.3 Decimation . 52 C Usability test form 53 D Screenshots 54 Chapter 1 Introduction 1.1 Background SICK IVP AB develops software, supports and markets a range of cameras, mainly machine vision used in the production industry.
Recommended publications
  • Course 3D MDX: 3D-Graphics with Managed Directx 9.0 Chapter C4: Standard Meshes = Primitives
    1 Course 3D_MDX: 3D-Graphics with Managed DirectX 9.0 Chapter C4: Standard Meshes = Primitives Copyright © by V. Miszalok, last update: 11-08-2006 Project mesh_primitive1 Form1, OnResize, OnTimer Exercises Project mesh_primitive1 Main Menu after starting VS 2005: File → New Project... → Templates: Windows Application Name: mesh_primitive1 → Location: C:\temp → Create directory for solution: switch it off → OK Delete the files Program.cs and Form1.Designer.cs and the content of Form1.cs, as described in the chapters 2DCisC1 to 2DCisC4. If You can't find a Solution Explorer-window, open it via the main menu: View → Solution Explorer. Inside the Solution Explorer-window click the plus-sign in front of mesh_primitive1. A tree opens. Look for the branch "References". Right-click References and left-click Add Reference.... An Add Reference dialog box opens. Scroll down to the component name: Microsoft.DirectX Version 1.0.2902.0. Highlight this reference by a left-click and (holding the Strg-key pressed) two more references: Microsoft.DirectX.Direct3D Version 1.0.2902.0 and Microsoft.DirectX.Direct3DX Version 1.0.2902.0 or 1.0.2903.0 or 1.0.2904.0. Quit the Add Reference dialog box with OK. Check if three references: Microsoft.DirectX and Microsoft.DirectX.Direct3D and Microsoft.DirectX.Direct3DX are now visible inside the Solution Explorer window underneath mesh_primitive1 → References. Form1, OnResize, OnTimer Write the following code to Form1.cs: using System; using System.Windows.Forms; using System.Drawing; using Microsoft.DirectX; using
    [Show full text]
  • Course 3D MDX: 3D-Graphics with Managed Directx 9.0 Chapter C2: Cylinder with Directional Light
    1 Course 3D_MDX: 3D-Graphics with Managed DirectX 9.0 Chapter C2: Cylinder with Directional Light Copyright © by V. Miszalok, last update: 26-04-2007 Project lights1 This chapter is a summary of a Direct3D-Tutorial from Microsoft: Tutorial4. You find the tutorial here: C:\DXSDK\Samples\Managed\Direct3D\Tutorials. Main Menu after starting VS 2005: File → New Project... → Templates: Windows Application Name: lights1 → Location: C:\temp → Create directory for solution: switch it off → OK Delete the files Program.cs and Form1.Designer.cs and the content of Form1.cs, as descibed in the chapters 2DCisC1 to 2DCisC4. If You find no Solution Explorer-window, open it via the main menu: View → Solution Explorer. Inside the Solution Explorer-window click the plus-sign in front of lights1. A tree opens. Look for the branch "References". Right-click References and left-click Add Reference.... An Add Reference dialog box opens. Scroll down to the component name: Microsoft.DirectX Version 1.0.2902.0. Highlight this reference by a left-click and (holding the Strg-key pressed) the reference Microsoft.DirectX.Direct3D Version 1.0.2902.0 somewhere below. Quit the Add Reference dialog box with OK. Check if both references Microsoft.DirectX and Microsoft.DirectX.Direct3D are now visible inside the Solution Explorer window underneath lights1 → References. If You use Visual Studio 2005 Professional You should switch off the vexatious automatic format- and indent- mechanism of the code editor before You copy the following code to Form1.cs (otherwise all the code will be reformatted into chaos): 1. Main menu of Visual Studio 2005 Professional: click menu "Tools".
    [Show full text]
  • Marc Eaddy, [email protected], Curriculum Vitae, 2/4
    155 E 49 th Street #6B New York, NY 10017 Marc +1 (212) 593-3583 [email protected] Eaddy www.columbia.edu/~me133 Research Interests I plan to make software easier to develop and maintain by enabling developers to better understand and modularize programs. My primary research area is Software Engineering, focusing on development tools, language design, program analysis, and empirical studies. Education 9/2003–5/2008 PhD in Computer Science, Columbia University, New York, NY GPA: 4.0 Thesis: An Empirical Assessment of the Crosscutting Concern Problem Advisor: Alfred Aho 5/2001 MS in Computer Science, Columbia University, New York, NY GPA: 4.0 4/1995 Dual BS in Electrical Engineering and Computer Science, GPA: 3.1 Florida State University, Tallahassee, FL Research Experience 6/2005–present Research Assistant, Columbia University, Prof. Alfred Aho, New York, NY Performed pioneering research on the crosscutting concern problem, i.e., the inability to effectively modularize the concerns (requirements, features, etc.) of a program. Created model to formalize the problem, methodology and tool (Java, 19,000 lines) for locating code related to a concern, and metrics to quantify the amount of crosscutting. Obtained empirical evidence indicating that as crosscutting increases so do defects. Created tools and language extensions for reducing crosscutting concerns, including Wicca (C#, 37,000 lines), the first dynamic aspect-oriented programming system to support source-level debugging, edit-and-continue, and fine-grained weaving using statement-level annotations. 6/2006–8/2006 Research Intern, Microsoft Research, Programming Languages and Tools Group, Redmond, WA Created program dependency analysis and visualization tool that refactors classes into open classes to eliminate compile-time dependency cycles.
    [Show full text]
  • Windows Presentation Foundation
    1538.book Seite 39 Mittwoch, 9. Juni 2010 4:40 16 Lehnen Sie sich zurück. In diesem Kapitel werden Sie »gebootet«. Nach einem Blick auf die WPF im .NET Framework und einem Schnelldurchlauf durch die Windows- Programmiergeschichte erfahren Sie mehr über die Architektur und Konzepte der WPF. 1 Einführung in die WPF 1.1 Die WPF und das .NET Framework Mit der Windows Presentation Foundation (WPF) steht seit der Einführung des .NET Frameworks 3.0 gegen Ende des Jahres 2006 ein modernes Programmiermodell für die Entwicklung von Windows- und Webbrowser-Anwendungen zur Verfügung. Als Teil des .NET Frameworks ab Version 3.0 ist die WPF Microsofts strategische Plattform für die Entwicklung von Benutzeroberflächen unter Windows. 1.1.1 Die WPF im .NET Framework 3.0 Das Ende 2006 eingeführte .NET Framework 3.0 besteht aus den Komponenten des .NET Frameworks 2.0 und vier umfangreichen Programmiermodellen. Dies sind WPF, Win- dows Communication Foundation (WCF), Windows Workflow Foundation (WF) und Win- dows CardSpace (WCS). Das auf Windows Vista standardmäßig vorinstallierte .NET Framework 3.0 wird auch auf Windows Server 2003 und Windows XP unterstützt (siehe Abbildung 1.1). Mit den vier eingeführten Programmiermodellen WPF, WCF, WF und WCS stellte Microsoft erstmals größere, in Managed Code implementierte Bibliotheken zur Verfügung. Für die Entwick- lung von Benutzeroberflächen unter Windows stellt die WPF das zukünftige Program- miermodell dar. 39 1538.book Seite 40 Mittwoch, 9. Juni 2010 4:40 16 1 Einführung in die WPF .NET Framework 3.0 Windows Windows Windows Windows Presentation Communication Workflow CardSpace Foundation Foundation Foundation (WCS) (WPF) (WCF) (WF) .NET Framework 2.0 Windows ADO.NET ASP.NET ..
    [Show full text]
  • Beginning .NET Game Programming in En
    Beginning .NET Game Programming in en DAVID WELLER, ALEXANDRE SANTOS LOBAo, AND ELLEN HATTON APress Media, LLC Beginning .NET Game Programming in C# Copyright @2004 by David Weller, Alexandre Santos Lobao, and Ellen Hatton Originally published by APress in 2004 All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN 978-1-59059-319-6 ISBN 978-1-4302-0721-4 (eBook) DOI 10.1007/978-1-4302-0721-4 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Technical Reviewers: Andrew Jenks, Kent Sharkey, Tom Miller Editorial Board: Steve Anglin, Dan Appleman, Gary Cornell, James Cox, Tony Davis, John Franklin, Chris Mills, Steve Rycroft, Dominic Shakeshaft, Julian Skinner, Jim Sumser, Karen Watterson, Gavin Wray, John Zukowski Assistant Publisher: Grace Wong Project Manager: Sofia Marchant Copy Editor: Ami Knox Production Manager: Kari Brooks Production Editor: JanetVail Proofreader: Patrick Vincent Compositor: ContentWorks Indexer: Rebecca Plunkett Artist: Kinetic Publishing Services, LLC Cover Designer: Kurt Krames Manufacturing Manager: Tom Debolski The information in this book is distributed on an "as is" basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work.
    [Show full text]
  • PDF Download Beginning Directx 10 Game Programming 1St Edition Kindle
    BEGINNING DIRECTX 10 GAME PROGRAMMING 1ST EDITION PDF, EPUB, EBOOK Wendy Jones | 9781598633610 | | | | | Beginning DirectX 10 Game Programming 1st edition PDF Book In addition, this chapter explains primitive IDs and texture arrays. Discover the exciting world of game programming and 3D graphics creation using DirectX 11! Furthermore, we show how to smoothly "walk" the camera over the terrain. Show all. Show next xx. In addition, we show how to output 2D text, and give some tips on debugging Direct3D applications. JavaScript is currently disabled, this site works much better if you enable JavaScript in your browser. Pages Weller, David et al. The reader should satisfy the following prerequisites:. Beginning directx 11 game programming by allen Torrent 77e6ecdabd72afe42d5ec9 Contents. Beginning directx 11 game programming - bokus. Chapter 17, Particle Systems: In this chapter, we learn how to model systems that consist of many small particles that all behave in a similar manner. This book is anything but game programming,. He made the odd shift into multitier IT application development during the Internet boom, ultimately landing inside of Microsoft as a technical evangelist, where he spends time playing with all sorts of new technology and merrily saying under his breath, "I can't believe people pay me to have this much fun! For example, particle systems can be used to model falling snow and rain, fire and smoke, rocket trails, sprinklers, and fountains. Beginning DirectX 11 Game Programming. Ultimate game programming - coming soon Ultimate Game Programming coming soon website. We will be pleased if you get back more. Chapter 5, The Rendering Pipeline: In this long chapter, we provide a thorough introduction to the rendering pipeline, which is the sequence of steps necessary to generate a 2D image of the world based on what the virtual camera sees.
    [Show full text]
  • Virtual Class Room?
    1 Virtual Heads Team Nizhniy Novgorod State University students, studying on department of Calculating Math. and Cybernetics: Evgeny Gorodetsky - 2nd year master student; Alexey Polovinkin - 2nd year master student; Sergey Sidorov - 2nd year master student; Sergey Liverko - 4th year student; Scientific adviser: Vadim E. Turlapov (professor, doctor of technical science) Team was working since October 2006. 3 Project motivation and goals Problems of modern distant education: No tools for effective live communication between teacher and large group of students; Live audio and video exchange between all participants of the lection is too expensive with general internet connection; No integrated tools for communication and presentation; No integrated instruments for automated scheduling and conducting lections; Solution is to develop a set of integrated tools for: Organization and conducting lections in large groups of students; Live communication between all participants of the lection; Effective built-in tools for presentation demonstration. 4 What is Virtual Class Room? User control: users registration with role based security for students and teachers; users authorization; users group access permissions. Lection organization: creating lection schedule by teachers; registration to scheduled lections for students. Presentation demonstration: current slide review by all students during lection; auto slide switching for all users by teacher; sharing of hand-written drawings on presentation by teacher. “Live faces” visualization:
    [Show full text]
  • 3D-SOUND PROGRAMMING with MICROSOFT DIRECTX Surround Sound in Practice
    3D-SOUND PROGRAMMING WITH MICROSOFT DIRECTX Surround sound in practice Thesis of the University of Applied Sciences Degree programme in Business Information Technology Visamäki Fall 2013 Ville Niskanen Mr. Ville Niskanen ABSTRACT Unit Visamäki Name of degree programme Business Information Technology Option System development Author Ville Niskanen Year 2013-11-28 Subject of Bachelor’s thesis 3D-sound programming with Microsoft Di- rectX - Surround sound in practice. port. e sis. e ment. e ABSTRACT The thesis work done consists of computer application that plays various 3D-sound effects. The application has been realized with the main applica- tion and the actual sound effects have been implemented in the form of ex- traneous plug-in files. Rough implementation of the produced program structure has been described in this thesis document essay part. As the subject of the thesis has been an individual research project there have been no work life relations. The objectives of the thesis have been quite simple targeting, as can be presumed based on foregoing, in programming application that plays vari- is under the Creative Commons CCO license agre license CCO Commons Creative the under is ous 3D-sound effects, and furthermore creating mathematical algorithms report to implement 3D-sound effects. esis esis The knowledge basis, based on the fact that Microsoft DirectX-program- ming environment, as well as likely all Microsoft-programming compo- nents, is well-documented, and on the actual Microsoft DirectX-program- ming documentation found from the www, and furthermore on the materi- al found from the web covering the subject of digital signal processing.
    [Show full text]
  • Personal Data: Summary
    Personal data: Name: Bart van Haaff Nationality: Dutch Date of birth: 04/05/1966 Place of birth: The Hague Address: Dorpsstraat 34 City: Goudswaard, ZH ZIP Code: 3267 AG Telephone: 0186-693793 Mobile: 06-17256966 E-mail: mailto:[email protected] Website www.excode.nl LinkedIn profile: http://www.linkedin.com/in/bartvanhaaff VAR: WUO KVK 24444633 Summary 20 years of continuous professional software development experience, mostly on the Microsoft Windows platform. Worked extensively with all major Microsoft frameworks and technologies, including Visual Studio, COM, .NET, ASP.NET, SharePoint, SQL Server, DirectX, WPF, C#, C++, MFC, and ATL. Spend many years building and shipping commercial products gaining experience in large scale software projects, software product lifecycles, development team dynamics, configuration management and customer support issues. Currently available as a freelance consultant. Competences: Competence Level Remarks Programming languages C, C++: 20 years Including the C++ Standard Template Library (STL) C#: 10 years Including C++/CLI on .NET JavaScript, 2 years OO analyses and design 15 years Design patterns, UML, component based development, test driven development, SCRUM Technologies Microsoft C7.0 → Visual Studio.NET.2010, MFC, ATL, COM(+), ActiveX, .NET, .NET Compact Framework, .NET COM Interop, XML, WCF, WPF, (P)LINQ, ASP.NET, jQuery, AJAX, CCS, (managed) DirectX, WSS3.0/MOSS2007 (SharePoint), Progress Orbix CORBA middleware Databases 10 years SQL (ADO.NET & LINQ) with Microsoft SQL Server (Enterprise, Compact,
    [Show full text]
  • Windows Presentation Foundation – Das Umfassende Handbuch
    7201.book Seite 30 Donnerstag, 5. September 2019 8:43 08 7201.book Seite 31 Donnerstag, 5. September 2019 8:43 08 0Hinweise zum Buch Bevor es losgeht, finden Sie hier noch ein paar Hinweise dazu, wie Sie am bes- ten mit diesem Buch arbeiten. Auf den folgenden Seiten finden Sie kurze Inhaltsangaben zu allen Kapiteln und Informationen zu den verwendeten Beispielen: wo Sie diese finden und welche Systemvoraussetzungen not- wendig sind, um sie nachzuvollziehen. Für wen ist dieses Buch gedacht? Um den meisten Nutzen aus diesem Buch zu ziehen, sollten Sie über eine gute Portion an C#-Know-how und über etwas Wissen rund um .NET verfügen. Fragen zu Events, Delegates, anonymen Methoden, Lambda Expressions, Auto-implemented Properties, async und await sollten Sie nicht gleich in Verlegenheit bringen. Sind Sie beim Thema .NET oder C# etwas un- sicher, empfehle ich Ihnen, vorab ein C#-Buch zu lesen. Grundkenntnisse in XML sind für das vorliegende Buch von Vorteil, allerdings nicht zwingend erforderlich. Das Buch richtet sich an .NET-Entwickler, die Desktop-Anwendungen für Windows mit der Windows Presentation Foundation umsetzen möchten. Es eignet sich sowohl für WPF-Ein- steiger als auch für leicht fortgeschrittene WPF-Entwickler. Seit Windows 10 lassen sich neben der klassischen Desktop-Anwendung auch die Universal Windows Apps entwickeln. WPF-Anwendungen funktionieren im Gegensatz zu den Univer- sal Windows Apps auch unter älteren Windows-Versionen. Allerdings lassen sich WPF- Anwendungen nur auf dem Desktop von Windows ausführen. Die Universal Windows Apps laufen dagegen neben dem Desktop auf verschiedensten Umgebungen: Xbox, HoloLens oder sogar auf dem Raspberry Pi.
    [Show full text]
  • Capítulo 4. Directx Y Managed Directx
    Capítulo 4 DirectX y Managed DirectX 4.1 Introducción Para la creación de aplicaciones 3D en la plataforma Windows hay dos corrientes principales. Una es usar OpenGL, que es un API abierto y regido por un comité. La otra es usar DirectX que es un API creado y propiedad de Microsoft. Ambos APIs son buenos y tienen sus ventajas y desventajas. Por ejemplo, el comité que rige OpenGL está compuesto por empresas desarrolladoras de software y hardware que son las que deciden cuales nuevas funcionalidades implementar, lo cual lo hace muy abierto pero al mismo tiempo hace que las actualizaciones tomen tiempo. OpenGL además ofrece la funcionalidad de ser un API que es posible utilizar en diferentes plataformas. En cambio en DirectX solo Microsoft tiene el control de que nuevas funcionalidades implementar y cuales quitar. Lo cual puede hacer que se adapte muy rápido a los cambios, pero también hace que los desarrolladores no sepan que funcionalidades se van a implementar en la siguiente versión ni tengan control sobre el futuro del API. DirectX a diferencia de OpenGL solo funciona en Windows, no hay una implementación para otras plataformas y muy difícilmente la habrá. Otra diferencia importante es que OpenGL está enfocado a la creación de imágenes 2D y 3D, mientras que DirectX se puede usar para gráficas 2D y 3D, sonido, video, comunicación en red y manejo de dispositivos de entrada. Estas funcionalidades del API se describirán más adelante. En esta tesis se utilizó DirectX porque al momento de comenzarla era el único API que contaba con un lenguaje de alto nivel para programar Shaders.
    [Show full text]
  • Windows & Directx Programming #1
    Windows & DirectX Programming #1 Kang, Seong-tae Computer Graphics, 2008 Spring CGLab CttContents ` Basic Windows Programming ` Windows GDI ` Preparing for DirectX Programming CGLab PiitPrerequisites ` Windows 2000/XP or later ` Microsoft Visual Studio ` Visual C++ 6 is not recommended ` Too old - grammatical flaws and bugs ` Microsoft’s technical support expired in Sep. 2005 ` Recent DirectX SDKs don’t support VC++ 6 any more ` Microsoft DirectX SDK ` 9.0c or later ` A DirectX 9 compatible graphic card ` ATI Radeon 9500+ ` Nvidia GeForce FX, 6/7/8 Series ` In te l GMA900 in tegra te d grap hics or la ter ` ATI Express-200 integrated graphics or later Basic Windows Programming Computer Graphics, 2008 Spring CGLab How to Program a Win 32 App lica tion ` Win32 API ` The most primitive method ` C-based definitions ` MFC(Microsoft Foundation Class) ` Object oriented framework ` C++ based encapsulation of Win32 API ` Intuitive UI coding ` Complicated internal structures ` Other third-party frameworks ` Qt, GTK, GLUT… Win32 API is enough for this course. Using some framework is on your choice. CGLab CtiWi32PjtCreating a Win32 Project CGLab CtiWi32PjtCreating a Win32 Project CGLab CtiWi32PjtCreating a Win32 Project If you want an empty project and to write whole code, check ‘Empty project’. CGLab CtiWi32PjtCreating a Win32 Project If you are *really* not interested in Win32 API at all, this is all you should know. CGLab Win 32 App licat ion Structure : Br ie f Descr ipt ion ` WinMain ` Entry point : the application starts from here ` Contains
    [Show full text]