Thanks to visit codestin.com
Credit goes to github.com

Skip to content

leonardo98/ogl

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Very Dangerous OpenGL Engine - experiment. Do Not Use It For Any Purpose!
 
ΠžΡ‡Π΅Π½ΡŒ опасный OpenGL Π΄Π²ΠΈΠΆΠ΅ΠΊ - экспСримСнт. НЕ Π˜Π‘ΠŸΠžΠ”Π›Π¬Π—Π£Π™Π’Π• Π΅Π³ΠΎ Π½ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ… цСлях!


 * ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Π΄Π²ΠΈΠΆΠΊΠ° *
# Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°ΠΏΡ€Π΅Ρ‚ Π½Π° использованиС new & delete
# ВсС рСсурсы - это Акторы, элСмСнты сцСн-Π³Ρ€Π°Ρ„Π°
# ВсС Π°ΠΊΡ‚ΠΎΡ€Ρ‹ сцСны ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ срСдствами сцСн-Π³Ρ€Π°Ρ„Π°
# Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² 
## Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ полоТСния спрайтов ΠΈ Π·Π° Π²Ρ‹Π²ΠΎΠ΄ ΠΈΡ… Π½Π° экран ΠΈ Π·Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сигналов ΠΎΡ‚ устройств Π²Π²ΠΎΠ΄Π°
## ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ содСрТит Π² сСбС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ рСсурсов ΠΈ ΠΈΠ³Ρ€ΠΎΠ²ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ
# ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄Π²ΠΈΠΆΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅
# Акторы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ обращСния ΠΊ сСбС
# ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π² Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ дискам ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
# Π’ Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Render & Update Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²
# Π’ Render & Update Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚ΠΈΠΏΠ° ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΊ дискам ΠΈΠ»ΠΈ lock ΠΏΠΎΡ‚ΠΎΠΊΠ°(ΠΌΠΎΠΆΠ½ΠΎ try_lock())
# ВсС Π°ΠΊΡ‚ΠΎΡ€Ρ‹ - минимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, ТСсткий Π·Π°ΠΏΡ€Π΅Ρ‚ Π½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ 300 строк ΠΊΠΎΠ΄Π° Π½Π° Π°ΠΊΡ‚ΠΎΡ€.


* ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π»ΠΈΠ±Ρ‹ *
glfw / glfm - desktop / modile application main loop (glfm is not used yet)
glew - loading extensions of OpenGL
assimp - loading 3D models
bullet - physic


 * ΠΈΠ΄Π΅ΠΈ *
# signed distance field fonts
# Π² 2D ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ минимальноС количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²(x, y, u, v, alpha)
# Π² 3D ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ lowpoly ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ Π² Ρ†Π²Π΅Ρ‚Π° ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ тСкстурС (Π² ΡˆΠ΅ΠΉΠ΄Π΅Ρ€ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ x, y, z, u)
# ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Π±Π°Ρ‚Ρ‡ΠΈΠ½Π³Π΅
# ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ трансформаций, Ссли ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ влияниС(Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ смСщСниС ΠΈΠ»ΠΈ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅, Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ скСйл)
# Π² 3D Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ambient Occlusion для PC ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΠΎΠΊ
# Π’Ρ€Π΅ΠΊΠΈΠ½Π³ ΠΏΠΎ web-ΠΊΠ°ΠΌΠ΅Ρ€Π΅, распознаваниС простых ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²(Ρ‚ΠΈΠΏΠ° мяча), ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ТСстами
# Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΡƒ сцСны Π² XML, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ этот XML ΠΈ строит ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΡƒΡŽ сцСну

TODO:
[x] Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Акторов
[x] ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ всСх Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΈΡ… ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· прилоТСния
# Актор для Ρ„Π΅ΠΉΠ΄Π° экрана(для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ²)
[x] Актор - тСкст(ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ AntTweakBar, Ссли ΠΌΠΎΠΆΠ½ΠΎ - Π·Π°ΠΈΠΌΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ тСксты ΠΎΡ‚ Ρ‚ΡƒΠ΄Π°)
[x] БистСма ΠΎΠ±ΠΌΠ΅Π½Π° сигналами (ΠΈΠ½ΠΏΡƒΡ‚, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ сигналы ΠΎΡ‚ Актора ΠΊ Актору)
[x] Π˜Π½ΠΏΡƒΡ‚ (ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ΡˆΡŒ)
[x] Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Актор, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΈΠ½ΠΏΡƒΡ‚ сигналы, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ BoundBox
[x] Кнопка-Π°ΠΊΡ‚ΠΎΡ€
# Актор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ³Ρ€Π°Π΅Ρ‚ Π·Π²ΡƒΠΊ
# ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ "debug_render_actor" - ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ с "material"
# пСрСнСсти Π±Π°Ρ‚Ρ‡ΠΈΠ½Π³ Π² "material" (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· тСкстуры ???, Π½ΠΎ Π² тСкстурС ΠΎΠ½ Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ΅Π½, Ρ‚ΡƒΡ‚ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ссли Π°ΠΊΡ‚ΠΎΡ€Ρ‹ Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ Ρ€Π΅Π½Π΄Π΅Ρ€ состояниС - Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· обновлСния массива Π²Π΅Ρ€ΡˆΠΈΠ½)
# Актор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈΠ· XML (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ rapidxml), Π² конструктор ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, ΠΎΠ½ строит своих Π΄Π΅Ρ‚Π΅ΠΉ ΠΏΠΎ этому Ρ„Π°ΠΉΠ»Ρƒ
# Актор для 3D пространства, с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ статичных 3D ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ (ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСтка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Assimp, FBX ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ€Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ· Blender)
# Актор для отобраТСния списков, Π½Π° Π²Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½Π΅ΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ строит Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΎΡ€Ρ‹-ΠΊΠ»ΠΎΠ½Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слоты ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°.
# ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ CMake ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ Android(сСйчас собираСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для PC)
# Для Π°Π½Π΄Ρ€ΠΎΠΈΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ https://github.com/brackeen/glfm
# Π˜Π½ΡΡ‚Π°Π½ΡΠΈΠ½Π³
# Π€ΠΈΠ·ΠΈΠΊΠ° 2D ΠΈ 3D
[x] Π’Π²ΠΈΠ½ для управлСния Π°Π»ΡŒΡ„ΠΎΠΉ
# Π’Π²ΠΈΠ½ для управлСния Ρ†Π²Π΅Ρ‚ΠΎΠΌ (LowPriority - ΠΏΠΎΠΊΠ° Π½Π΅ Π½ΡƒΠΆΠ΅Π½, достаточно Π°Π»ΡŒΡ„Ρ‹)

 * Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Π½Π° Qt, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ спрайты, ΡˆΠ΅ΠΉΠ΄Π΅Ρ€Ρ‹, тСкстуры. *
# Π½Π° Π±Π°Π·Π΅ https://github.com/leonardo98/2dgamedesigner
# Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ Π² 3D пространствС
# Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 3D ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
# Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для отобраТСния Π΄Π΅Ρ€Π΅Π²Π° Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²
# ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‰ΠΈΠΊ атласов для спрайтов
# сохранСниС Π² xml

Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ
https://www.reddit.com/r/gamedev/comments/c9ff0d/ive_made_150_free_lowpoly_nature_models_you_can/
https://www.pinterest.ru/pin/688276755535691557/

About

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 95.4%
  • CMake 4.6%