Skip to content

Nor-s/vk-painting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vk-painting

220 x 220 1min ~ 3min

n=8

n=8

512 x 512 3min ~ 10min

n=8

n=8

ToDo

offscreen - command pool

separation: object - pipeline (for renderpass compatibility)

key input

camera movement

command buffers arrangement

Fix multithread

Fix hardcoding -> supportsBlit = false

Add library VMA: https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator

Add imgui: https://github.com/ocornut/imgui

Algorithm

random algorithm (basic genetic algorithm)

  1. init population
  2. draw brush (dna : scale, position, rotation, color .. => transformation)
  3. Similarity measurement (cosine similarity: https://en.wikipedia.org/wiki/Cosine_similarity)
  4. sort by fitness
  5. top dna : offscreen rendering and copy to texture
  6. top 3 dna : cross over, mutate
  7. repeat 2~6

Dependency

vulkan: https://www.vulkan.org/

glm: https://github.com/g-truc/glm

glfw: https://github.com/glfw/glfw

stb: https://github.com/nothings/stb

Reference

Vulkan tutorial: https://vulkan-tutorial.com/

Khronos group vulkan example: https://github.com/KhronosGroup/Vulkan-Samples

SaschWillems vulkan example: https://github.com/SaschaWillems/Vulkan

Little vulkan enginge: https://github.com/blurrypiano/littleVulkanEngine

Scarp engine: https://github.com/ScrappyCocco/ScrapEngine

Acid: https://github.com/EQMG/Acid

My repo: https://github.com/Nor-s/genetic-painting

Releases

No releases published

Packages

No packages published

Languages