Hi Nick, Firstly, nice progress you've made. I would be happy to add your library to the projects section in the documentation: https://pyglet.readthedocs.io/en/latest/index.html#projects-using-pyglet Just let me know the description and preferred link, and I'll add it in. It's not much, but we don't have a proper website at the moment.
About this model module, it's mainly just about getting the abstractions right, such as what attributes make sense to expose. We should also ensure the codec system makes sense for adding additional model parsers. Similar to the Sprite class in scope. As you might know we are planning to move pyglet's core to GL3+ in the future. I would be very interested in talking with you regarding this work. Some necessary internal classes for supporting everything are necessary, such as shader/shader program abstractions. These are duplicated in projects like yours, but in the future it would be nice to ensure the built-in classes are useful by other projects as well. The current rough implementation of the shader module for example, is here: https://bitbucket.org/HigashiNoKaze/pyglet/src/aec97ee54c670ce983041b39284b9794f78ceac0/pyglet/graphics/shader.py?at=shaders&fileviewer=file-view-default On Saturday, February 3, 2018 at 5:58:54 PM UTC+9, Nick Del Grosso wrote: > > Hi, > > In response to this addition, I'd like to recommend my 3d model package > Ratcave again as an extension package for Pyglet and Pygame users. It has > been quite improved since I last suggested it on this mailing list, with a > cleaner interface and more tests. It uses modern opengl and shaders to stay > performant, and it works as a drop-in extension to any opengl context. > Models are drawn with draw(), cameras, lights, shaders, etc. use context > managers, which keep things cclean-lookin, and it also includes an OBJ file > parser. Finally, deferred rendering is made simple with context manager > FBOs and Textures, which has made it an effective teaching tool for > shaders. > > https://github.com/neuroneuro15/ratcave > > https://ratcave.readthedocs.io/en/latest/tutorial1.html > > For simple games and apps, it has been more than enough. There's > certainly still room for improvement, of course. Any contributions and > suggestions are welcome! > > Best wishes, > > Nick > > > On Friday, February 2, 2018, Benjamin Moran <[email protected] > <javascript:>> wrote: > >> Hi everyone, >> >> I know this has been quiet for a while, but I figured it was a good time >> to think about merging in the basic framework for the model class. I think >> this work gets a lot more interesting with GL3+, but at least we can get >> some things worked out in the mean time. You can find my pull request here, >> and feedback would be greatly appreciated: >> https://bitbucket.org/pyglet/pyglet/pull-requests/108/3dmodel/diff >> >> This consists of a new pyglet.model module. The structure is very similar >> to pyglet.image. There is also a single codec for obj files, which was >> based on some older /contrib code. This codec is crude and unfinished, but >> works well enough for a placeholder. >> >> The pyglet.model.__init__ file contains the new `Model` class, as well as >> two Groups (for textured, or non-textured meshes). The main thing we need >> to flesh out is the `Model` class. In particular, which attributes we need >> to consider. Currently there is a `vertex_list_map`, which contains a >> mapping of the vertex lists and which Groups they are using (as some models >> have multiple meshes with different properties). >> >> I'm thinking at the least we should add an `add_to_texture_bin` method, >> similar to Animations. This would also be useful for the resource module, >> so models loaded through there could optionally be added to the interal >> resource module texture bins (as Animations can be). >> >> I'm not an expert on these things, so any feedback is appreciated! >> >> -Ben >> >> >> >> >> >> >> On Tuesday, July 18, 2017 at 4:08:42 PM UTC+9, Nick Del Grosso wrote: >>> >>> Hi Benjamin, >>> >>> That makes sense. Thank you for taking a look at ratcave! >>> >>> Best wishes, >>> >>> Nick >>> >>> On Jul 11, 2017 10:24 AM, "Benjamin Moran" <[email protected]> wrote: >>> >>> As a follow up Nick, >>> >>> You've recreated a lot of things that will potentially end up in pyglet >>> core at some point. This is more related to the other thread about an >>> eventual move of the pyglet codebase to GL3+. It looks like we can leverage >>> most of the existing pyglet.graphics module when we move forward with that, >>> so it makes sense for the Model framework to use the existing API for a >>> start. >>> >>> I see that you've written a nice obj loader, which is a lot cleaner than >>> the quick one I've hacked together :) >>> >>> >>> >>> >>> On Thursday, July 6, 2017 at 11:36:19 PM UTC+9, Nick Del Grosso wrote: >>> >>>> Hi Benjamin, >>>> >>>> Thank you for the compliment! >>>> >>>> Best wishes, >>>> NIck >>>> >>>> On Thu, Jun 29, 2017 at 9:06 AM, Benjamin Moran <[email protected]> >>>> wrote: >>>> >>>>> Hi Nick, >>>>> >>>>> I was browsing through your code, and it looks like a nice project. >>>>> >>>>> >>>>> >>>>> On Wednesday, June 28, 2017 at 5:35:32 PM UTC+9, Nick Del Grosso wrote: >>>>>> >>>>>> Hi all, >>>>>> >>>>>> The ratcave package I wrote (https://github.com/neuroneuro15/ratcave) >>>>>> and use in my virtual reality research is exactly this. >>>>>> >>>>>> Documentation and Tutorials: >>>>>> http://ratcave.readthedocs.io/en/latest/introduction.html#features >>>>>> >>>>>> Best wishes, >>>>>> >>>>>> Nick >>>>>> >>>>>> On Mon, Jun 19, 2017 at 4:29 AM, Benjamin Moran <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> I still plan on merging in the basic framework for Models, but first >>>>>>> I'm going over Steve's work on the documentation. >>>>>>> >>>>>>> Regarding loading the files, I realize we'll have to do something >>>>>>> regarding binary versus ascii formats. My initial thinking is that we >>>>>>> should default to loading as binary for everything, and just decode to >>>>>>> ascii inside the ModelDecoders if necessary. This would prevent a bit >>>>>>> of >>>>>>> waste inside the load and resource methods. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Friday, June 9, 2017 at 12:46:36 AM UTC+9, Benjamin Moran wrote: >>>>>>>> >>>>>>>> Other modules support loading resources from either a file object >>>>>>>> or just a filename, which the model one does as well. >>>>>>>> >>>>>>>> The obj codec (so far) uses the os module to find the base path of >>>>>>>> the file object, and locates the other material and image files that >>>>>>>> way. >>>>>>>> >>>>>>>> There might be some hiccups that will pop up once trying to use the >>>>>>>> resource module, but nothing we can't solve. Any suggestions welcome, >>>>>>>> as >>>>>>>> always. >>>>>>>> >>>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "pyglet-users" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> Visit this group at https://groups.google.com/group/pyglet-users. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "pyglet-users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at https://groups.google.com/group/pyglet-users. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>> You received this message because you are subscribed to the Google >>> Groups "pyglet-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at https://groups.google.com/group/pyglet-users. >>> For more options, visit https://groups.google.com/d/optout. >>> >>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "pyglet-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/pyglet-users. >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.
