-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP #1
Comments
This comment has been minimized.
This comment has been minimized.
|
|
Profiling performance to optimize:
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
TODO:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Progress bar:
Version 0.6: add a framebuffer. Rethink examples. finalize moving headers in include/ and write in README a small Makefile for using this lib.Version 0.7: check VBO size + add primitives + finish draw() (method with an implicit number of vertices, inheritance, dirty element for texture, hide private classes like GLLocation, VBO sizes checked)Version 0.8:Version 0.9: reworking folders of workspaceHigh:
[API] Replace prog.draw(vao, ...) by vao.draw()[CRITICAL] aa = VBO[i] makes pending the ith element while we are just reading it (= get()). No solution on how distinguish between set and get. To be tested: https://stackoverflow.com/questions/19217813/operator-c-get-set[API] Create a Mesh class (Geometry class holding shaders). Make hide code vao.bind(); prog.draw(vao);[API] Implement Renderer for SceneGraph.[API] Replace GLProgram::setInitVBOSize(x) by bind(vao, x=0) ?[FEATURE] Manage #include inside GLShaders https://github.com/tntmeijs/GLSL-Shader-Includes/blob/master/Shadinclude.hpp[IMPROV] glBindBuffer(GL_ARRAY_BUFFER) + glEnableVertexAttribArray seems not necessary to be called every time this can save important OpenGL calls.[CRITICAL] cannot attach local variables of shaders to GLProg because prog will hold pointers of local variables and be compiled outside this fonction and therefore using wrong references.*=
does the product vector and no longer do componentProduct.Medium:
Add mask for glwindows and events: mouse move ... avoid calling dummy callbacks.[FEATURE] GLWindow: create the callback onKeyPressed and onKeyReleased Update examples.[FEATURE] Adapt GLWindow to manage multiple windows. See https://gist.github.com/SnopyDogy/a9a22497a893ec86aa3e[API] Add iterator with a stack for iterating on SceneGraph nodes (see HeadFirst Design Pattern)(wont do)[API] Load *.obj filesERROR:GLTextures.hpp:246 Cannot setup texture with width or height set to 0
but this is not enough explicit: we need the VAO name ...[BUG] Wrong error message: Failed OpenGL program has not been bound to a VAO + Failed setting-up graphics => terminate called after throwing an instance of 'std::runtime_error' what(): The GLFW library is not initialized[TUTO] Redo and simplify tutorials: Split README into several tutorial files. Separate OpenGL wrapper examples from finale API (hiding OpenGL wrapper).Low:
Rename SceneGraph to Scene. Make a class 3DObject a SceneNode holding Material and Geometry. Do not let the user to have to write the recursivity for rendering or updating matrices.[API] Implement Node3D_SP operator[](std::string const& name) but fucked up by shared_from_this.Texture1D,Texture2DDepth,Texture3D (WIP: make an Example of texture3D http://www.mathematik.uni-marburg.de/~thormae/lectures/graphics1/code_v2/Texture3D/glut/Texture3D.cpp), TextureCube, Texture2DFloat to be implemented (for float check if the mesa has the good version supporting it https://www.mesa3d.org/index.html).Implement in IGLTexture::update() conversion to pending data to texture x,y,w,h(FIXME: OpenGL does not like it).[MAKEFILE] Update Makefile to compile with OS X (see dev branch but the code is messy)[API] Make this project to be a header-only project.(won't do)Armadillo:
[API] Hide unnecessary classes to the developer (GLLocations, GLUniforms, Sampler ...)
[UNIT-TESTS] Check if OpenGL context is not yet created no segfault occurs by calling OpenGL functions
[UNIT-TESTS] Add more unit tests as checks on robustness when OpenGL context is not created or for example bind VAO to uncompiled program (or defining attributes before compiling a GLProgram).
[UNIT-TESTS] Complete unit tests and add Travis-CI
[UNIT-TESTS] Check destructor for every class (especially texture2D, Location)
[UNIT-TESTS] Add unit test: attrib and uniform with the same name. Is this possible?
[UNIT-TESTS] Can we do: m_prog.vector3f("textColor") = Vector3f({r, g, b}); when m_prog is not compiled ?[LICENSE] Change to MIT ?
is possible to use sttruct => VBO:
Done:
Compute GPU memory.(TODO: also compute shader memory)Pour compiler les exemples on utilise explicitemement le nom libopenglcppwrapper.a-0.6Reserve an GLIndexBuffer inside VAO ? See Example 07[API] Texture: Add new constructor(width, height) . Use pendingContainer for storing SOIL data instead of C array.[API] Texture: Conflict between SOIL_LOAD_RGBA vs TextureOptions::cpuPixelFormat = PixelFormat::RGBA;(dev-textures branch)[URGENT FEATURE] Move hpp files into include/. Install them through Makefile and generate and install a pkg-config .pc file for using my lib in another project.[URGENT FEATURE] be sure that prog.attribute<>("foo") = xx; is the same thing than vao.attribute<>("foo") = xx; ==> make VAO::attribute() { return m_binded_prog.bind(this); m_binded_prog.attribute<>("foo"); }[URGENT FEATURE] Maybe because of previous point we can simply:forbid prog.attribute("foo") ==> vao.T("foo") = ... ;replaceprog.uniform<T>("foo") = ...;
byprog.T("foo") = ...;
I don't understand whyvao1.VBO<Vector3f>("a_position") = { ... };
does not work when adding operator= in PendingContainer => I have to place this operator in GLVBO[URGENT FEATURE] Implement a GLProgram method checking if all VBOs and uniforms have been set and VBOs have the same size. (WIP FIXME: cannot compile)[API] missing GLProgram with a constructor with a reserved number of elements.[URGENT FEATURE] Implement a GLProgram method checking if the VAO we want to bind with is compatible with the program (2 GLProgram creating each 1 VAO, the user bind a VAO to the wrong program)[URGENT FEATURE] Finish draw() methods: test and give an example with index buffer. Finish draw with an implicit number of vertices. Pass VAO as param to draw() methods.[URGENT FEATURE] Remove unnecessary private classes like Logger, File, Maths, Singleton[FEATURE] Framebuffer class to be implemented.(WIP still buggy)[FEATURE] Rethink inheritance for Texture. Rename Texture3D as TextureCube and implement Texture3D.[IMPROV] PendingContainer: std::valarray is not the best container(todo: add unit tests)[IMPROV] Replace raw pointers by smart pointers in SceneGraph[API] add namespace.[API] Make GLBuffer and GLTexture2D have a common class ancestor (PendingContainer)[API] throw OpenGL exceptions instead of std::exception[API] Do not compile imgui into the lib but inside examples. Let compile the imgui wrapper.(wont do)[API] Convert OpenGL constant into C++ enum when they are required into public API.[API] Pass number of elements to reserved when creating VBOs[API] Make opengl::createContext() more generic (initially made for gtkmm)[API] Add SimTaDyn logger[API] Fix license in headers[API] Proper installation: move header code into include dir. Compile static and dynamic lib.[API] use shaders 330 in examples.[MATHS] Updating Vector.hpp and Matrix.hpp: uses method names from https://stanford.edu/class/ee103/julia_slides/julia_vectors_slides.pdfdefine template functions one() and zero(). See Implement functions one() and zero() for Matrix class BacASable#1make alias method for magnitude() and norm(), length()add: addScaledVector(Vect, scal)change code operator*() for doing scalar product. Rename old code to: componentProduct()can be nice to add deviation, rms ...[TUTO] Rewrite the SimTaDyn SceneGraph tutorial with this API (in debug)[TUTO] Add the imgui SceneGraph as example.[TUTO] Add an example with draw + index (EBO)[TUTO] Framebuffer example[TUTO] Multi-textures example[TUTO] With some examples (ie 13), when resizing the window, the projection matrix is not correctly applied while others are ok (ie 04, 06).[DOC] Missing document differences with glumpy and opengl4csharp[CRASH] Fix in Example02 if we invert the position of m_cube and m_prog. This will produce a crash: the program wants to use a GPU released object.[QUALITY] GLProgram output error when shaders failed to compile is totally messy with carriage returns![QUALITY] Init Makefile and directory for unit tests.The text was updated successfully, but these errors were encountered: