diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..bfc3516 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,32 @@ +# Contributing + +Thanks for your interest in improving MeshGeneration. + +## Before submitting a change + +- Keep pull requests focused and explain the problem they solve. +- Describe how the change was validated. Code and scene changes should normally + be checked with the Unity version recorded in + `ProjectSettings/ProjectVersion.txt`. +- Include Unity `.meta` files for new assets, and do not commit generated folders + such as `Library`, `Temp`, `Logs`, or `obj`. +- Keep the English and Spanish documentation aligned when changing information + shared by both READMEs, or explain why a change applies to only one language. + +## Automated and AI-assisted contributions + +Automation and AI assistance are permitted when used responsibly. Pull requests +that use them must disclose the tools involved and the scope of their use in the +pull request description. The submitter remains responsible for understanding, +reviewing, testing, and supporting the proposed change. + +Every contribution is assessed individually. Maintainers may consider its +technical quality, relevance, provenance, security implications, contributor +history, and available signals about the author's trustworthiness. Automated +generation does not establish that a change is correct or appropriate for the +project. + +High-volume, misleading, undisclosed, or unsolicited machine-generated pull +requests may be closed without merging. Maintainers may also request additional +context or verification, or decline a contribution when its provenance or +reviewability is insufficient. diff --git a/README.es-ES.md b/README.es-ES.md new file mode 100644 index 0000000..ebfebd4 --- /dev/null +++ b/README.es-ES.md @@ -0,0 +1,86 @@ +# MeshGeneration + +[English](README.md) | Español + +MeshGeneration es un entorno de experimentación en Unity para aprender y probar +la construcción, edición y procesamiento de mallas procedurales, además del +renderizado mediante shaders. El repositorio reúne prototipos pequeños basados +en escenas; no pretende ser un juego terminado ni un paquete de Unity listo para +producción. + +## Contenido + +- Utilidades reutilizables para crear vértices y triángulos, transformar + geometría y combinar mallas. +- Primitivas procedurales como cuadriláteros, círculos, cubos, ortoedros, + cilindros, conos, esferas, planos curvos y túneles. +- Experimentos de generación de objetos, entre ellos castillos, cofres, + calabazas y cuerdas. +- Prototipos de edición y procesamiento para extrusión, subdivisión, unión de + mallas y dos estrategias experimentales de simplificación. +- Experimentos de shaders para el Built-in Render Pipeline, con ejemplos de + surface shaders, vertex shaders, geometry shaders, burbujas, superficies + curvas y ray marching. +- Un experimento independiente de renderizado de ojos en + `Assets/Experiments/01_Eyes`. + +## Requisitos + +- Unity **2020.3.15f2**. La revisión exacta del editor se encuentra en + `ProjectSettings/ProjectVersion.txt`. + +El proyecto utiliza el Built-in Render Pipeline de Unity y los paquetes +declarados en `Packages/manifest.json`. Abrirlo con otra versión de Unity puede +iniciar una actualización y modificar archivos serializados del proyecto. + +## Primeros pasos + +1. Clona este repositorio. +2. Añade la carpeta del repositorio como proyecto existente en Unity Hub. +3. Ábrelo con Unity 2020.3.15f2 y espera a que Package Manager resuelva las + dependencias. +4. Abre una de las escenas de ejemplo indicadas a continuación. +5. En los componentes que tengan inspectores personalizados, utiliza acciones + como **Generate** o **Simplify** para ejecutar el experimento. + +La mayoría de los ejemplos deben abrirse directamente desde la ventana Project. +La lista de escenas de Build Settings no funciona como catálogo de todos los +experimentos. + +## Escenas recomendadas + +| Área | Escenas | +| --- | --- | +| Sólidos básicos | `Assets/Scenes/SolidsGeneration/CubeGeneration.unity`, `Assets/Scenes/SolidsGeneration/RectCuboidGeneration.unity` | +| Objetos procedurales | `Assets/Scenes/ObjectsGeneration/ProceduralCastle.unity`, `Assets/Scenes/ObjectsGeneration/Chest.unity`, `Assets/Scenes/ObjectsGeneration/Pumpkin.unity` | +| Herramientas de malla | `Assets/Scenes/MeshEditor.unity`, `Assets/Scenes/MeshSimplification.unity`, `Assets/Scenes/SVR19Prototype/MeshExtrusion.unity` | +| Otros generadores | `Assets/Scenes/CubeSphere.unity`, `Assets/Scenes/PCGRope.unity` | +| Shaders | `Assets/Scenes/ShaderExperiments/Circle.unity`, `Assets/Scenes/ShaderExperiments/RayMarching.unity`, `Assets/Scenes/Bubble.unity`, `Assets/Scenes/CircularDot.unity` | +| Experimento independiente | `Assets/Experiments/01_Eyes/Scene/01_Eyes.unity` | + +## Estructura del repositorio + +- `Assets/Scripts` — Constructores de mallas, generadores, herramientas del + editor y experimentos de procesamiento. +- `Assets/Scripts/MeshSimplification` — Prototipos de simplificación aleatoria y + basada en la distancia de los vértices. +- `Assets/Scenes` — Escenas de ejemplo, agrupadas por experimento cuando + corresponde. +- `Assets/Experiments` — Experimentos autocontenidos con sus propias escenas y + recursos. +- `Assets/Shaders` — Shaders de ShaderLab y archivos `.cginc` compartidos. +- `Assets/Material`, `Assets/Materials` y `Assets/Textures` — Materiales y + texturas utilizados en los ejemplos. +- `Packages` — Declaraciones de dependencias de Unity Package Manager. +- `ProjectSettings` — Configuración del proyecto y del editor de Unity. + +## Estado del proyecto + +Este es un repositorio experimental y orientado al aprendizaje. Las API, escenas +y recursos pueden cambiar sin garantías de compatibilidad, y los ejemplos no +han sido preparados ni validados para utilizarse en producción. + +## Contribuciones + +Antes de proponer un cambio, consulta [CONTRIBUTING.md](CONTRIBUTING.md), incluida +la política sobre contribuciones automatizadas o asistidas por IA. diff --git a/README.md b/README.md index e42d204..05812e7 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,80 @@ # MeshGeneration -A Unity project with small-scale experiments for generating and visualizing meshes. -It is intended as a sandbox to iterate on mesh-building ideas, shaders, and -supporting assets. +English | [Español](README.es-ES.md) + +MeshGeneration is a Unity sandbox for learning and experimenting with procedural +mesh construction, editing, processing, and shader-driven rendering. The +repository collects small, scene-based prototypes rather than presenting a +finished game or a production-ready Unity package. + +## What is included + +- Reusable mesh-building helpers for vertices, triangles, transforms, and mesh + composition. +- Procedural primitives such as quads, circles, cubes, rectangular cuboids, + cylinders, cones, spheres, curved planes, and tunnels. +- Object-generation experiments for castles, chests, pumpkins, and ropes. +- Mesh-editing and processing prototypes covering extrusion, subdivision, mesh + union, and two experimental simplification strategies. +- Built-in Render Pipeline shader experiments, including surface, vertex, + geometry, bubble, curved-surface, and ray-marching examples. +- An isolated eye-rendering experiment under `Assets/Experiments/01_Eyes`. ## Requirements -- Unity **2020.3.15f2** (see `ProjectSettings/ProjectVersion.txt`). +- Unity **2020.3.15f2**. The exact editor revision is recorded in + `ProjectSettings/ProjectVersion.txt`. + +The project uses Unity's Built-in Render Pipeline and packages listed in +`Packages/manifest.json`. Opening it with a different Unity version may trigger +an upgrade and modify serialized project files. ## Getting started -1. Open the project folder in Unity Hub. -2. Use Unity 2020.3.15f2 when prompted. -3. Explore the scenes under `Assets/Scenes` or the experiment assets under - `Assets/Experiments`. +1. Clone this repository. +2. In Unity Hub, add the repository directory as an existing project. +3. Open it with Unity 2020.3.15f2 and allow the Package Manager to resolve the + dependencies. +4. Open one of the sample scenes described below. +5. For components with custom inspectors, use actions such as **Generate** or + **Simplify** in the Inspector to run the experiment. + +Most examples are intended to be opened directly from the Project window. The +Build Settings scene list does not serve as a catalog of every experiment. + +## Suggested scenes + +| Area | Scenes | +| --- | --- | +| Basic solids | `Assets/Scenes/SolidsGeneration/CubeGeneration.unity`, `Assets/Scenes/SolidsGeneration/RectCuboidGeneration.unity` | +| Procedural objects | `Assets/Scenes/ObjectsGeneration/ProceduralCastle.unity`, `Assets/Scenes/ObjectsGeneration/Chest.unity`, `Assets/Scenes/ObjectsGeneration/Pumpkin.unity` | +| Mesh tools | `Assets/Scenes/MeshEditor.unity`, `Assets/Scenes/MeshSimplification.unity`, `Assets/Scenes/SVR19Prototype/MeshExtrusion.unity` | +| Other generators | `Assets/Scenes/CubeSphere.unity`, `Assets/Scenes/PCGRope.unity` | +| Shaders | `Assets/Scenes/ShaderExperiments/Circle.unity`, `Assets/Scenes/ShaderExperiments/RayMarching.unity`, `Assets/Scenes/Bubble.unity`, `Assets/Scenes/CircularDot.unity` | +| Standalone experiment | `Assets/Experiments/01_Eyes/Scene/01_Eyes.unity` | ## Repository layout -- `Assets/Experiments` — Prototype scenes, scripts, and assets for mesh generation. -- `Assets/Scripts` — Core runtime scripts and utilities. -- `Assets/Shaders` — Shader experiments and materials. -- `Assets/Scenes` — Unity scenes you can open directly. -- `Assets/Textures` / `Assets/Materials` — Supporting assets. +- `Assets/Scripts` — Mesh builders, generators, editor tools, and processing + experiments. +- `Assets/Scripts/MeshSimplification` — Random and vertex-distance-based mesh + simplification prototypes. +- `Assets/Scenes` — Sample scenes grouped by experiment where applicable. +- `Assets/Experiments` — Self-contained experiments with their own scenes and + assets. +- `Assets/Shaders` — ShaderLab shaders and shared `.cginc` files. +- `Assets/Material`, `Assets/Materials`, and `Assets/Textures` — Materials and + textures used by the samples. +- `Packages` — Unity Package Manager dependency declarations. +- `ProjectSettings` — Unity editor and project configuration. + +## Project status + +This is an experimental learning repository. APIs, scenes, and assets may change +without compatibility guarantees, and the examples have not been prepared or +validated for production use. -## Notes +## Contributing -This repository is intentionally lightweight; experiments may evolve quickly and -are not guaranteed to be production-ready. +Before proposing a change, read [CONTRIBUTING.md](CONTRIBUTING.md), including the +policy for automated and AI-assisted contributions.