Skip to content

C++ DirectX 11, 12, OpenGL Advanced 3D online Tutorials

License

Notifications You must be signed in to change notification settings

pmborg/WoMA3Dengine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Adding Android Development Environment from scratch in VS 2019:

https://github.com/pmborg/WoMA3Dengine/blob/main/HowToInstallVisualStudio2019CrossPlatformDevelopmentEnvironment/howto_download_and_install_VisualStudio2019CrossPlatformSetupEnvironment.txt

WoMA3Dengine (DX11, DX12, OPENGL, DX9) Advanced Tutorials


WoMA3Dengine at Level 29 INTRO DEMO

Movement Keys: (at level28)


- Left: arrow or a
- Right: arrow or d
- Front: arrow or w
- Back: arrow or s
- Look Up: pg. Up
- Look Down: pg. Down
- Go Up: R
- Go Down: F

Keys / Hints:


[F1] System Info
[F2] Celestial Info
Latitude/Longitude
Calculate Sun Rise / Sun Set
Moon Distance
Sun Geometric elevation
Moon Geometric elevation
Moon Azimuth
[F3] Map with current location
[F4] Get real time weather info (when network option is: ON)
[F5] Game Rendering page (defaultt page)
[F6] SETUP
Try to Change the driver on the fly without the need of close and open the Application.
- DirectX 12
- DirectX 11
- DirectX 9
- OPENGL 4

- DX 160 Full Demo (to be added later, maybe?)

3D - INTERMEDIATE TUTORIAL SERIES


...
...


  • DX42: WORLD.XML: load M3D and use SHADOW INSTANCES but now with GPU ROTATION on (BLACK_BISHOPs and BLACK_KNIGHTs)

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_042.png


  • DX41: WORLD.XML: load M3D and use SHADOW INSTANCES
    • This is a join of DX40 with DX39 now all together.
    • 041ShadowMapInstance.hlsl is equivalent to 036ShadowMap.hlsl but with instances.

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_041.png


  • DX40: WORLD.XML: load M3D and use INSTANCES to clone objects using GPU
    • This is a very powerful tool, with less we can do more, using Shader INSTANCES to clone objects into different positions
    • 040LightInstance.hlsl is equivalent to 023Light.hlsl but with instances

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_040.png


  • DX39: WORLD.XML: load M3D (the Woma 3D file format) files up to 30x faster than OBJ files in DX LEVEl38
    • Loading the generated files (in DX38) ".M3D" Woma3DFormat. in 0.5 seconds vs 13.5 seconds using the ".OBJ" 3D file format

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_039.png


  • DX38: WORLD.XML: load OBJ 3D file format, save to M3D Woma 3D fast file FORMAT
    • Load and Convert the powerfull but slow ".OBJ" 3D file format and to a fast ".M3D" Woma3DFormat.

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_038.png


  • DX37: WORLD.XML: load OBJ 3D file format, render chess board pieces
    • Adding MAIN THREAD and the LOADER THREAD

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_037.png


  • DX36: WORLD.XML: load OBJ 3D file format, render a SHADOW MAP
    • Loading now OBJ with SHADOW MAP, using render to texture

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_036.png


  • DX35: WORLD.XML: load OBJ 3D file format, with BUMP MAP
    • Loading now OBJ with BUMP MAP texture

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_035.png


- DX34: WORLD.XML: load OBJ 3D file format, with SPECULAR and SHININESS
- Loading now OBJ with SPECULAR and SHININESS

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_034.png


- DX33: WORLD.XML: load OBJ 3D file format, the compond, using transparent textures ALFA MAP and ALFA COLOR
- Loading now OBJ with alfa color and alfamap

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_033.png


  • DX32: WORLD.XML: load OBJ 3D file format, the first advanced object, using LIGHT shader
    • Loading more complex objects with light, the: OLD HOUSE.

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_032.png


- DX31: WORLD.XML: load OBJ 3D file format, with MULTIPLE TEXTURES, using TEXTURE shader
- Loading Multiple Textures in one object

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_031.png


  • DX30: WORLD.XML: load OBJ 3D file format, using COLOR shader
    • SceneManager and SceneNode
    • QuadTree and Frustum
    • World and Objects: Loading objects as a descriptor: World.xml
    • Load obj format

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_030.png

INTERMEDIATE 3D ENGINE TUTORIAL LIST

  • DX29: INTRO DEMO OF BASIC TUTORIAL SERIES
    • Adding the Sound Manager
    • Adding Play background Music
    • Generate the first RELEASE BUILD
    • Add the installer of INTRO DEMO OF BASIC TUTORIAL SERIES

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_029_VIDEO_DEMO.png


  • DX28: Sky dome with a sky sphere
    • Adding the fixed camera Sky

    • Adding Direct input for DX Drivers

    • Allow snapshot file dump using "print screen" key, in any of these image formats:

        - Bmp
        - Png
        - Ico
        - Jpeg
        - Tiff
        - Gif
        - Wmp
        - Dds
      

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_028.png


  • DX27: The Rastertek text font

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_027.png


  • DX26: The Spheres (COLOR, TEXTURE and LIGHT Shaders)

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_026.png


  • DX25: The CUBEs (COLOR, TEXTURE and LIGHT Shaders)

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_025.png


  • DX24: The 2D Rendering (Sprite)

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_024.png


  • DX23: The directional LIGHT Shader with environment color

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_023.png


  • DX22: The TEXTURE Shader
    Add third party image readers:
    • BMP
    • JPG
    • PNG
    • TIFF
    • DDS
    • TGA

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_022.png


  • DX21: The COLOR Shader
    Introduction to the: Rasterizer State

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_021.png


- DX20: Resize Main window
Allow alt enter swap And allow user to change the window size

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_020.png


  • DX19: The Main window
    • Add Render Engine for Windows only, with these drivers:
    • DX9sdk (the original sdk, will be added/revealed later, at least on basic series)
    • DX9(using 11)
    • DX11
    • OPENGL3/4
    • DX12

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/DXEngine_019.png

BASIC 3D ENGINE TUTORIAL LIST


  • 009 Get current RealTime Weather using the aviation METAR

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_009_PAINT_METAR_WEATHER_REALTIME.png


  • 008 RealTimeMapGPSPosition

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_008_PAINT_REALTIME_GPS_MAP_LOCATION.png


- 007 Add the Real Time Celestial calculations.
- Loading files from engine.pck on RELEASE BUILD (explained later in an advanced chapeter with the installer)
- Calculate SunRise, SunSet
- Calculate Sun altitude angle and azimuth angle
- Moon Phase (based of realime date)
- Calculate Moon Distance
- Calculate moon Elevation, taking into account atmospheric refraction
- calculate Moon Ecliptic Latitude, Ecliptic Longitude and Azimuth

(later will be used to re-create more realistic astro positions)

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_007_PAINT_REALTIMECELESTIAL_ASTROCLASS.png


- 006 PACKmanager + IDEA + MATH + CPU BENCH
- Create a pack file called engine.pack, which is a zip with the contents of all engine directory.
- Cypher the file with IDEA and call it: engine.pck
- Add the first Math libs for DX and OPENGL
- Add a simple CPU benchmark, to measure the performance improvement

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_006_PACKMANAGER_IDEA_CPU_BENCHMARK.png


- 005 The System settings (settings.xml)
- Adding the OS Paint events
- Allow Load/Save Game System Settigns in the settings.xml file.

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_005_PAINT_SETTINGS_XML.png


- 004 SystemManager + TIMER + FPS
- Adding the first version of SystemManager viewer
- Adding Precision Timer
- Add FPS (Frame per second) calculation

https://github.com/pmborg/WoMA3Dengine/blob/main/Image_Tutorial_Snapshot/CoreEngine_004_SYSTEMMANAGER_TIMER_FPS_MATH.png


- 003 EXCEPTION_trace + DUMP_upload
- Exception Stack trace viewer in detail for an _DEBUG build
- Exception Stack trace viewer and create the respective Mini Dump report
- Option to Upload the report for an FTP site.

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_003_MINIDUMPER_STACK_EXCEPTION.png


- 002 MAIN_Window
- Create MAIN OS Window
- Handle the OS Windows events
- Main Window Paint events
- OS INPUT manager

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_002_MAINWINDOW_EVENTS.png


- 001 The User International Language
- User language detection (later automatic translation)
- Log manager, will log on: REPORT.txt, on Visual Studio Console and on Console Window
- Memory leak detector level 1
- OS manager for main OS directories (DEBUG/RELEASE)

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_001_LANG_LOG_MEMLEAK_OSMAINDIRs.png


- 000 OSengine - The basic pillar foundations of the 3D WoMA Engine
Debug Console
default settings
SystemClass (common for all platforms)
WinSystemClass (for windows)
XboxSystemClass
LinuxSystemClass
AndroidSystemClass

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/Image_Tutorial_Snapshot/CoreEngine_000_OSENGINE_SYSTEM.png


3D - CORE TUTORIAL SERIES


HTTP WOMA 3D ENGINE TUTORIAL LIST


https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/thumbs/1.png

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/thumbs/2.png

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/thumbs/3.png

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/thumbs/4.png

https://raw.githubusercontent.com/pmborg/WoMA3Dengine/main/thumbs/5.png


VIDEO:

WoMA3Dengine at Level 29 INTRO DEMO