Changed normal of the ground to GL, Now the normal mapping is correct.
This commit is contained in:
118
AGENTS.md
Normal file
118
AGENTS.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# Fundamental Coding Style Rules
|
||||
|
||||
Codex must obey these rules without exception:
|
||||
|
||||
## Imports
|
||||
|
||||
* Each import statement must be separated by exactly **one empty line**.
|
||||
* All `from` tokens must be aligned vertically using **tabs before `from`**.
|
||||
* Use **double quotes** for all string literals.
|
||||
* Use **ES modules** only.
|
||||
* Avoid backticks unless unavoidable for syntax.
|
||||
|
||||
## Function Calls
|
||||
|
||||
* Always write calls like:
|
||||
`myFunction( param )`
|
||||
with spaces **inside** parentheses.
|
||||
|
||||
## Class Structure
|
||||
|
||||
* Exactly **one empty line** between class methods.
|
||||
* No empty line at start or end of class.
|
||||
* Methods must start with a blank line after `{` and end with a blank line before `}`.
|
||||
|
||||
## Method Body Spacing
|
||||
|
||||
Inside every method body:
|
||||
|
||||
* **One empty line between every line of code**.
|
||||
* No inline comments on the same line as code.
|
||||
|
||||
## Callbacks & Functions
|
||||
|
||||
* Never write inline callbacks.
|
||||
* Never write nested callbacks.
|
||||
* Never pass anonymous inline functions to `.map()`, `.filter()`, `.forEach()`, etc.
|
||||
* Never use arrow functions.
|
||||
* Always create a separate class method instead.
|
||||
|
||||
## Promises
|
||||
|
||||
* Never use `.then()`.
|
||||
* Never use `new Promise( resolve => { ... } )`.
|
||||
* Always use `async` / `await`.
|
||||
* Avoid `try-catch` blocks unless mandatory.
|
||||
|
||||
## Arrays
|
||||
|
||||
* Use `new Array()` instead of `[]`, **except** in Angular metadata (`imports: [ ]`, `providers: [ ]` etc.) where `[]` is allowed.
|
||||
|
||||
## Objects
|
||||
|
||||
* Never return an inline object directly.
|
||||
* Always assign the object to a variable first, then return that variable.
|
||||
* Align object literal values vertically using tabs before the values.
|
||||
|
||||
## Conditionals
|
||||
|
||||
* Never use short-form ternary (`? :`).
|
||||
* Always write full `if` statements.
|
||||
|
||||
## Logging
|
||||
|
||||
* Do not use `$()` syntax.
|
||||
* Use simple logs:
|
||||
`console.log( "message", value );`
|
||||
|
||||
## JSON imports
|
||||
|
||||
Always use:
|
||||
|
||||
```
|
||||
import data from "./file.json" with { type: "json" };
|
||||
```
|
||||
|
||||
## Indentation
|
||||
|
||||
* Use **tabs** everywhere (no spaces).
|
||||
* Nested JSON or object structures must use tabs for indentation.
|
||||
|
||||
|
||||
# Repository Guidelines
|
||||
|
||||
## Project Structure & Modules
|
||||
- `engine/`: core rendering engine (WebGL, deferred, PBR).
|
||||
- `shaders/`: GLSL shader sources; `shaders/old/` contains legacy variants.
|
||||
- `plugins/`: optional features and extensions (for example `plugins/ocean`).
|
||||
- `demos/`, `start.html`, `index.html`: example entrypoints for running the engine.
|
||||
- `media/`: textures, models, fonts, and screenshots used by demos.
|
||||
- `server.js`: minimal static HTTP server for local development.
|
||||
|
||||
## Build, Run, and Development
|
||||
- No build step is required; files are served as static assets.
|
||||
- Run `node server.js` from the repo root to start the dev server on `http://localhost:4000`.
|
||||
- Open `/start.html` or files under `/demos/` in your browser to exercise changes.
|
||||
- Use ES modules (`type: "module"` in `package.json`) for new JavaScript files.
|
||||
|
||||
## Coding Style & Naming
|
||||
- JavaScript only, using ES modules and `class` syntax where appropriate.
|
||||
- Use camelCase for variables and functions, PascalCase for classes and render passes.
|
||||
- Match existing indentation (tabs) and brace style in the surrounding file.
|
||||
- Keep core engine logic in `engine/`, shaders in `shaders/`, and optional logic in `plugins/`.
|
||||
|
||||
## Testing & Validation
|
||||
- There is no automated test runner yet; validate behavior through demos.
|
||||
- Prefer creating small, focused demo pages under `demos/` (for example `demos/rough.htm`) for new features.
|
||||
- Keep demos self-contained, quick to load, and clearly named after the feature they showcase.
|
||||
|
||||
## Commit & Pull Request Guidelines
|
||||
- Write short, descriptive commit messages (for example `Fix SSAO sampling` or `Update README images`).
|
||||
- Aim for one logical change per commit when practical.
|
||||
- PRs should include a concise description, a list of affected areas, and screenshots or GIFs for visual or lighting changes.
|
||||
- Link to any related issues and mention relevant demo URLs (such as `/demos/new.htm`) that reviewers can open.
|
||||
|
||||
## Agent-Specific Notes
|
||||
- When changing rendering behavior, prefer adding or adjusting render passes under `engine/renderPasses/` instead of large monolithic edits.
|
||||
- Avoid deleting existing demos or media assets; add new examples alongside current ones to preserve reference behavior.
|
||||
|
||||
Reference in New Issue
Block a user