Commit Graph
12 Commits
Author SHA1 Message Date
西风逍遥游 6d0e53832e feat(devtools): add scene-inspection MCP tools with synchronized image/geometry snapshots
Add engine-layer scene inspection toolset for the MCP server:
- inspect_generate_scene_camera_views / set_camera_pose / get_visible_entities_screen_bbox
- capture_render_frame now exports atomically synchronized buffers: color frame
  + geometry JSON always, plus optional depth/normal (GBuffer), and a per-pixel
  render entity-ID mask (id) with a JSON id->entity mapping.

Engine support:
- Graphics::renderEntityIdMask (per-pixel mesh ID offscreen pass, Vulkan)
- Graphics::readGBufferToImageData (depth/normal readback)
- SceneInspect module: multi-camera auto sampling, atomic snapshot, temp cache

Verified with GPU tests (RenderSystem3D.entityIdMaskPixels, readTextureBackPixels).
2026-08-16 16:46:05 +08:00
西风逍遥游andCursor Agent c5ec152369 test(graphics): classic 场景开启 mipmap 与各向异性过滤 (#51)
* test(graphics): enable mipmaps and anisotropy in classic scene loads

ClassicScenes Assimp albedo, RenderImageAudit studio checkers/rock maps,
and RenderSystem3D motif/checker textures now use TextureCreateInfo::withMipmaps
so flythroughs exercise trilinear + anisotropic filtering while engine defaults stay off.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(test): avoid REQUIRE on MipmapMode enum in ClassicScenes

zeroerr tries to stream enum values in assertion diagnostics and has no
operator<< for MipmapMode, which broke Linux/macOS/Windows CI builds.
Compare via static_cast<int> like TextureSampler.cpp.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(test): use .get() in unique_ptr REQUIRE checks

zeroerr assertion diagnostics copy compared values; REQUIRE(unique_ptr)
fails to compile because unique_ptr is non-copyable.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-13 23:50:01 +08:00
西风逍遥游andCursor Agent 59b2ebabf1 feat(graphics): parallax occlusion mapping (POM) for mesh3d (#35)
Add height-map driven POM on the default mesh3d / mesh3d_clustered PBR
path so brick/stone materials get fake depth without tessellation.

- GLSL: parallax_map.glsl (adaptive steep march + linear refinement)
- API: Renderable3D::setHeightTexture / setParallax; scale=0 keeps old UVs
- Descriptor binding for height sampler; UBO parallax vec4 appended
- Docs + CPU math tests + GPU pixel-diff coverage

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-12 18:33:03 +08:00
西风逍遥游andCursor Agent 1fe6934c0a feat(graphics): texture cell bombing 消除平铺重复纹理 (#30)
* feat(graphics): texture cell bombing to break tiling

Add UV-space cell bombing on the default mesh3d / clustered PBR paths:
per-cell random offset and rotation blended across a 2x2 neighborhood
(with textureGrad for stable mips). Opt-in via Renderable3D::setTexCellBomb
(strength 0 keeps prior behavior). Includes GLSL helper, SPIR-V embeds,
CPU reference header, docs, and smoke tests.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(graphics): rotate UVs in cell bombing; harden GPU test

Rotate UVs about each cell center (not just translate) so periodic
textures actually break tiling. Use the known-good UV cube + repeating
motif in the pixel smoke test.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-11 17:01:48 +08:00
西风逍遥游 b9e3730072 feat(tests): enhance graphics tests with new rendering previews
- Added new test cases for various graphics functionalities, including animation previews, particle effects, and inventory UI.
- Implemented rendering previews for Mixamo animations, Box2D physics, and procedural generation, allowing for real-time visualization during tests.
- Introduced helper functions for drawing graphics elements, improving the clarity and maintainability of test code.
- Enhanced existing tests to utilize the new graphics capabilities, ensuring comprehensive coverage of rendering features.
2026-08-11 02:57:47 +08:00
西风逍遥游andCursor Agent d603219164 feat: complete 2D/3D pick, overlap, and collision query APIs (#11)
Add Math geometry tests for 2D/3D picking and overlaps, Physics
rayCast/queryAABB/testPoint, and Camera2D/3D screen pick helpers,
with script bindings, docs, and unit tests.

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-10 07:42:09 +08:00
西风逍遥游 f0b0527f9f feat: enhance map module with multi-layer support and object management
- Implemented multi-layer tilemap functionality, allowing for the reading and saving of Tiled JSON formats.
- Added support for various tile projections (orthogonal, isometric, staggered, hexagonal) and depth calculations.
- Introduced object layer parsing and caching for improved map object management.
- Updated the rendering system to unify 2D depth queues and enhance sprite handling.
- Added new methods for accessing object properties, including position and dimensions.

This update significantly improves the map module's capabilities and integration with the rendering system.
2026-08-08 00:26:58 +08:00
sunxfancyandCursor d1034c4c2b feat: enhance math and tensor modules with new functionalities and documentation updates
- Updated the math module to include vector and matrix operations, noise generation, Bezier curves, and random number utilities.
- Introduced the tensor module, providing TensorFlow 2-style eager execution and graph building capabilities.
- Enhanced documentation to reflect the new features in the math and tensor modules, including usage examples and API references.
- Modified CMakeLists.txt to include the new math and tensor modules, ensuring proper build configurations.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 15:50:02 +08:00
sunxfancyandCursor 097cc3835b feat: add demo module and enhance asset synchronization for Android
- Introduced a new optional demo module that includes procedural sound effects and planet texture generation.
- Updated the build system to support the demo module with the `EVENGINE_BUILD_DEMO` option.
- Enhanced the Makefile to synchronize game assets into the APK during the build process.
- Modified the AndroidManifest to set the screen orientation to portrait for better compatibility.
- Improved documentation to reflect the new demo features and asset synchronization process.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 17:38:56 +08:00
sunxfancyandCursor 73c779f87f feat: implement file watching functionality in the filesystem module
- Added methods for file watching, including `watch`, `unwatch`, `unwatchAll`, `getWatchCount`, `pollWatch`, `getLastWatchPath`, and `getLastWatchRealPath`.
- Enhanced the `Filesystem` class to support monitoring file changes, allowing for real-time updates.
- Updated the `physfs` implementation to handle file watch targets and events.
- Improved documentation and added unit tests to validate the new file watching features.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-06 14:51:07 +08:00
西风逍遥游 0daa1071bd feat: screen getPixel readback and 3D texture/lighting pixel verify
Add optional swapchain capture for getPixel, UV cube pixel tests, Ninja/MSVC tooling, and bump ECS.hpp/zeroerr submodules.
2026-08-05 16:10:32 +08:00
西风逍遥游 a6b4d4f884 feat: add Mesh drawMesh Camera3D Renderable3D and 3D-then-2D compose 2026-08-05 15:06:55 +08:00