Skip to content
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 GL Acre / Pixel renderer demo #6

Draft
wants to merge 41 commits into
base: main
Choose a base branch
from
Draft

WIP GL Acre / Pixel renderer demo #6

wants to merge 41 commits into from

Conversation

jcorbin
Copy link
Contributor

@jcorbin jcorbin commented Oct 20, 2023

No description provided.

Change cube target to esnext
- using glsl es 3.0 and a basic sprite billbaord deal
- using OffscreenCanvas and 2d array texture
- support spin
- design document
- background tiles
- tile sheet
- layered world
- curved tileset demo
- element oriented drawing with implicit locaiton
- faceted groups of layers
- glkit low level utiltiy module
- tilegen module for tileset particulars
- gltiles view engine
  - reify texture unit cache
  - moved index buffer responsibility under ElementIndex
  - factored out TileRenderer
    - encapsulates drawing over many layers
    - abstracts gl program interface
    - pushes more particulars down into layer.draw()
    - inverts layer visibility control to the passed layer iterator
    - may eventually erase over a better set of gltiles components, but
      for now committing the sin of a "Renderer" rather than a "set of
      things that you can use to render"
- more code moved into gldemo.js out of .html
  - flatten away facets in passing, just layers now
  - parameterize world more
  - imporve world generation code coherence
- concurrently from more than one shader
- more than one error from a shader
- more than one error per line
- strip the parsed "ERROR: N:M:" prefix
- use client size of canvas
- just check at the top of every frame
- move utility into glkit
- prior approach called out as an anti pattern:
  <https://webgl2fundamentals.org/webgl/lessons/webgl-anti-patterns.html>
- generation corner sourcing was always wrong
- needs to be +1 cell to cover the half cell overlap all around
- therefore needs to be clipped to the nominal layer bounds
- add demo ui toggles
- fix mustGetAttr missing check
- unbind buffers for best practice
- factor out loc center offset
- add input documentation
- also add ui hookup for cell and world size
Add several other options nice for testing.
Setup to evolve cell/world size change without restart
Base layer is everything but the data, leaving DenseLayer to focus
solely on its cellular xy space:
- uses a proxy cell object with get/set accessors
- uses null to signal at-out-of-bounds, whiche seems to work better,
  simplyfing caller use cases more than the exception avoidant prior

Plus use of tile clearing in demo fore gen loop is a step towards
regenerating the demo world without fully restarting it.
@vercel
Copy link

vercel bot commented Oct 20, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
playemojiquest ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 21, 2023 2:36pm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant