5 ms·
Scop – a 3D model viewer written in C++20 and Vulkan
- nullifidian 6y agoIt's not mentioned which model format the viewer supports. glTF? UPD: it uses https://github.com/assimp/assimp https://github.com/assimp/assimp which supports various formats.
- deleted 6y ago[deleted]
- app4soft 6y ago> It's not mentioned which model format the viewer supports. It's mentioned[0] in `README.md`: > scop can load Wavefront .obj files [0] https://github.com/cledant/scop_vulkan#features https://github.com/cledant/scop_vulkan#features
- dapids 6y agoAwesome example, bookmarked!
- Impossible 6y agoDear IMGUI is like the React of game dev/graphics demo UI. Shows up everywhere now
- cylon13 6y agoIt’s so convenient!
- app4soft 6y ago> Dear IMGUI is like the React of game dev/graphics demo UI. Shows up everywhere now I'm not saw any real example of Dear IMGUI usable under OpenGL 1.x yet.[0] SDL 1.x is much better in case for portability & wide range of platforms support.[1] (SDL2 lost a lot of platforms supported by SDL 1.x) [0] https://github.com/ocornut/imgui/issues/1006 https://github.com/ocornut/imgui/issues/1006 [1] https://twitter.com/app4soft/status/1282469039537889285 https://twitter.com/app4soft/status/1282469039537889285
- TazeTSchnitzel 6y agoOpenGL 1.x is ancient and unless you're targeting very old hardware for some retro project, you wouldn't use it, but the link you provided says it could run ImGui. Also SDL1 seems completely irrelevant?
- TeMPOraL 6y agoYup, it seems it could work for both SDL1 and OpenGL 1.x, it's just a matter of writing a custom backend. Per README: "Integrating Dear ImGui within your custom engine is a matter of 1) wiring mouse/keyboard/gamepad inputs 2) uploading one texture to your GPU/render engine 3) providing a render function that can bind textures and render textured triangles." The backends don't seem all that complicated. Here's the OpenGL 2 implementation: https://github.com/ocornut/imgui/blob/master/backends/imgui_impl_opengl2.cpp https://github.com/ocornut/imgui/blob/master/backends/imgui_... - should be backportable to OpenGL 1.x. I'm pretty sure that if someone was crazy enough, they could even write a ncurses backend for it. Rejecting 50% of the functionality for sure, but most of the UIs I've seen done with Dear ImGui were simple enough that they could be translated to terminal display almost 1:1. I actually love this kind of design, where the dependency on IO particulars is neatly separated out. I don't see much in terms of automated testing in the repo, but I imagine feature-level tests should be easy to add with such design: just have a backend that lets the test drive input, and consume callbacks and rendering commands.
- TazeTSchnitzel 6y agoBy the way, that link is broken because of a following character being parsed by HN as being part of the URL.
- TeMPOraL 6y agoThanks, fixed. @dang, is there any reason URL parser should consider a trailing semicolon to be a part of the URL? Or maybe HN needs some form of minimal markup or escaping syntax for URLs? Or at least a documentation of the existing parser? :).
- ncmncm 6y agoI built it, along with a long (long!) detour to build glslc, which AFAICT Debian does not package although it does package libglslang.a (!?). The CMake find_program thing was utterly unable to find glslc, even when I placed it in /usr/bin/; I had to hand-edit the build/CMakeCache.txt entry. (^*%^&^$%&% CMake.) When run, it pops up a window frame for a fractional second and dies with "VulkanInstance: no physical device". Otherwise, nice!
- TazeTSchnitzel 6y ago> AFAICT Debian does not package although it does package libglslang.a (!?) Well, those are different projects. The standalone version of libglslang is glslangValidator.
- jcelerier 6y ago> The CMake find_program thing was utterly unable to find glslc, even when I placed it in /usr/bin/; I had to hand-edit the build/CMakeCache.txt entry. (^*%^&^$%&% CMake.) I checked and the CMake code in this project is wrong: https://cmake.org/cmake/help/latest/command/find_program.html https://cmake.org/cmake/help/latest/command/find_program.htm... it should be find_program(GLSLC_PATH glslc REQUIRED FATAL_ERROR) e.g. here it was calling find_program with "glslc" as variable name in which to put a program called "" I submitted a fix here: https://github.com/cledant/scop_vulkan/pull/1 https://github.com/cledant/scop_vulkan/pull/1
- ur-whale 6y agoWelcome to dependency hell