Steven Johnson

My feedback

  1. 2 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  Corona - Feature Requests/Feedback » Desktop  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson shared this idea  · 
  2. 20 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Corona - Feature Requests/Feedback  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson supported this idea  · 
  3. 1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Corona - Feature Requests/Feedback  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson commented  · 

    It would certainly be useful, but probably hard to do in a very general way. The two things that I've thought might make it possible to do on the user side (and I've given it a lot of thought, ever since we got shaders and then meshes) would be:

    * Something like "uvBounds" (along the lines of contentBounds) that would give you the texture rect of the current frame (in normalized coordinates, i.e. 0-1)
    * Particulars on the x1/y1...x4/y4 calculation, which seem to be rolled into the texture coordinates, to synthesize it ourselves if necessary

  4. 15 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Corona - Feature Requests/Feedback » Graphics  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson commented  · 

    It was a bit sloppy on my part to phrase this in terms of methods (implying that the user would be calling these manually), rather than listeners. (Retained vs. immediate mode.) This is NOT what was being proposed! :)

    The gist of it, rather, is that some graphics operations are difficult or impossible in stock Corona, but perfectly feasible, sometimes even easy, in OpenGL. (Actually implementing these, which would entail native plugins and such, is a separate concern.) The obstacle lies in the timing, since user events don't fire during rendering. The proposal strives toward removing this obstacle.

    Usage might go something like follows.

    At startup:

    local MyObjectType = display.newObjectType{
    onCreate = MyCreateFunc,
    onDestroy = MyDestroyFunc,
    onDraw = MyDrawFunc,
    -- etc
    }

    then later you use the returned factory function to instantiate an object:

    local new_instance = MyObjectType()

    group:insert(new_instance)

    and tada, it's in the hierarchy! No magic apart from the bare necessities. The onus is on the developer to supply appropriate and consistent methods.

    Finally, this is to enable rather than encourage such things. For the most part you'd still prefer standard display objects.

    Steven Johnson shared this idea  · 
  5. 8 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Corona - Feature Requests/Feedback  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson supported this idea  · 
  6. 1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Corona - Feature Requests/Feedback  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson shared this idea  · 
  7. 1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Corona - Feature Requests/Feedback » Graphics  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson commented  · 

    SHARED DATA: USE CASES

    * Small particle systems. Since the whole data set is available, particles could even interact with one another.

    * Likewise, small batches of atlased tiles or polygon soups.

    * Animation hierarchies, e.g. for Spine- and Spriter-type skeletons.

    * Marching squares, metaballs, etc. A low-resolution grid can be maintained in the shared data and used to sculpt some instanced reference geometry, e.g. a triangle.

    * For that matter, there are various such "canonical meshes" we could instance, another being a square (possibly a highly tessellated polygon, under the hood).

    Quite often with these, the geometry can be defined mostly or entirely in the vertex shader, from the shared data. The mesh itself is important mainly for its vertex count, and maybe its shape; display object properties, on the other hand, even including position, may well be ignored. It would be a waste to have multiple such "instances" sitting around.

    * Furthermore, these enable certain dynamic geometry techniques, where we generate the maximum possible number of instances (three triangles per cell, for example, in marching squares), then in the vertex shader throw away excess instances (e.g. we turn them into zero-area primitives by smashing all vertices to the same point).

    CHUNKED DATA: USE CASES

    * "Huge" particle sets, though these lose the ability to see all of their neighbors.

    * Ditto for the other "small" use cases.

    CHUNKED DATA, NON-STANDARD FREQUENCY: USE CASES

    * Long "line strips", for instance meshes that follow a curve, which use the previous, current, and next point to sculpt the shape. (This was my own primary use case, a few years back, and one I'd like to revisit.)

    * Extending that to 2D, large grids (which also use previous / next rows), e.g. for cloth.

    * And to 3D and 3D grids (although these will gobble up data very quickly), for jelly or even voxels.

    * Back to 2D grids: higher-res marching squares, now broken up into subgrids.

    * Time series data, with "earlier" / "current" or "current" / "later" pairs, e.g. for certain motion blur algorithms.

    Steven Johnson shared this idea  · 
  8. 1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Corona - Feature Requests/Feedback » Graphics  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson shared this idea  · 
  9. 4 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  Corona - Feature Requests/Feedback  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson commented  · 

    I'm in this predicament myself. However, since everything of mine is either on Bitbucket or GitHub (private and public, respectively), submodules seem like the way to go: http://git-scm.com/book/en/Git-Tools-Submodules (Though at the moment laziness is holding me back. :P )

  10. 17 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Corona - Feature Requests/Feedback » Graphics  ·  Flag idea as inappropriate…  ·  Admin →
    Steven Johnson shared this idea  · 

Feedback and Knowledge Base