Skip to content

Commit

Permalink
2.8.1 self-calling functions
Browse files Browse the repository at this point in the history
  • Loading branch information
Dnyarri committed Apr 18, 2024
1 parent 215ec2d commit 4a13560
Show file tree
Hide file tree
Showing 13 changed files with 1,126 additions and 903 deletions.
26 changes: 19 additions & 7 deletions README.RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,35 @@

# Конвертер из растровых картинок в 3D-сетку треугольников

Программа на Python для трассировки карты высот в графическом формате ([PNG](http://www.libpng.org/pub/png/)) в трёхмерную векторную сетку треугольников (triangle meash) в формате [POVRay](https://www.povray.org/). Координаты x, y пикселя соответствуют координатам x, y узлов сетки, яркость пикселя соответствует высоте (z) узла сетки. В случае исходных графических файлов с низким разрешением полученная при трассировке 3D-сетка обеспечивает лучшее визуальное качество рендеринга, нежели исходные графические файлы при их использовании в качестве heightfield напрямую.
Программа на Python для трассировки карты высот в графическом формате ([PNG](http://www.libpng.org/pub/png/)) в трёхмерную векторную сетку треугольников (triangle meash) в форматах [POVRay](https://www.povray.org/) POV, Wavefront OBJ, а также STL для 3D-принтеров. Координаты x, y пикселя соответствуют координатам x, y узлов сетки, яркость пикселя соответствует высоте (z) узла сетки. В случае исходных графических файлов с низким разрешением полученная при трассировке 3D-сетка обеспечивает лучшее визуальное качество рендеринга, нежели исходные графические файлы при их использовании в качестве heightfield напрямую.

![Example of img2mesh output rendering](https://dnyarri.github.io/imgmesh/640/img2mesh.png)

В данной директории находится наиболее свежая версия программы; несколько более старых закопаны в *"old_versions"* для археологов будущего.
Содержимое:

- **img2mesh** - удобный GUI, импортирующий все функции из программ ниже.

- **img2pov** - конвертер PNG в POVRay scene. Полученная сцена содержит 3D-сетку, объект box (CSG intersection), создающий боковые стенки и дно, свет и камеру. Текстуры заявлены в declare отдельно для удобства редактирования.

- **img2obj** - конвертер PNG в Wavefront OBJ. Экспортированный файл содержит только 3D-сетку.

**Update:** В рамках крупного обновления, помимо полной переделки экспорта в POVRay, также добавлены экспорт в Wavefront OBJ и STL для 3D-принтеров.
- **img2stl** - конвертер PNG в STL. Экспортированный файл содержит 3D-сетку и боковые и нижнюю поверхности в виде сетки, поскольку они необходимы 3D-принтеру.

Следует заметить, что img2pov, img2obj и img2stl могут как работать самостоятельно по отдельности, так и быть удобно импортированы во внешнюю программу (как это сделано в img2mesh).

![Preview of img2mesh output files in one folder](https://dnyarri.github.io/imgmesh/printscreen.png)

В данной директории находится наиболее свежая версия программы; несколько более старых закопаны в *"old_versions"* для археологов будущего.

*Зависимости от внешних библиотек:* [PyPNG](https://gitlab.com/drj11/pypng), Tkinter. Первая лежит рядом с программой в репозитории, и, слава Создателю, способна работать в таком виде без установки; вторая входит во все типовые дистрибутивы Python.
*Зависимости от внешних библиотек:* [PyPNG](https://gitlab.com/drj11/pypng), Tkinter. Первая лежит рядом с программой в репозитории, и, слава cоздателю, способна работать в таком виде без установки; вторая входит во все типовые дистрибутивы Python.

*Инструкция по эксплуатации:* программы оборудованы минималистическим GUI, в результате всё, что вы должны сделать после запуска программы, это с помощью окна "Open..." выбрать и открыть файл PNG, с помощью окна "Save..." выбрать POV-файл для сохранения, подождать, пока программа отработает и закроется, затем открыть полученный POV-файл в POVRay и нажать кнопочку "Render". Экспортированная сцена содержит необходимый минимум глобальных переменных и объектов (камера, свет) для ознакомительного рендеринга без редактирования. Текстуры объекта и параметры камеры и т.п. записаны в максимально общем виде с комментариями, и должны быть просты для понимания и редактирования.
*Инструкция по эксплуатации:* программы оборудованы минималистическим GUI, в результате всё, что вы должны сделать после запуска программы, это с помощью окна "Open..." выбрать и открыть файл PNG, с помощью окна "Save..." выбрать файл для сохранения, подождать, пока программа отработает и закроется, затем открыть полученный файл в подходящей программе.

Прочие программы:

[Dnyarri website](https://dnyarri.github.io/)
[Вебсайт Жабы Огромной Умственной Силы](https://dnyarri.github.io/)

Во избежание санкций проект зеркалится:
Во избежание перебоев проект зеркалится:

[github Dnyarri](https://github.com/Dnyarri/img2mesh)

Expand Down
20 changes: 16 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,29 @@

# Bitmap to POVRay 3D triangle mesh converter

Python program for conversion of bitmap heightfield (in [PNG format](http://www.libpng.org/pub/png/)) to 3D triangle mesh in [POVRay](https://www.povray.org/) format. Resulting triangle mesh provides better rendering in case of low-res source files as compared to using source bitmaps as a heightfield directly.
Python program for conversion of bitmap heightfield (in [PNG format](http://www.libpng.org/pub/png/)) to 3D triangle mesh in [POVRay](https://www.povray.org/) POV, Wavefront OBJ and stereolithography (3D printer) STL format. Resulting triangle mesh provides better rendering in case of low-res source files as compared to using source bitmaps as a heightfield directly.

![Example of img2mesh output rendering](https://dnyarri.github.io/imgmesh/640/img2mesh.png)

Current dir contain most recent version of img2mesh program. Some previous versions are saved in *"old_versions"* for future alien archeologist to dig.
Project content:

- **img2mesh** - suitable GUI frontend linked to all programs below.

- **img2pov** - PNG to POVRay scene converter. Exported scene contains 3D mesh, bounding box (CSG intersection) to make it solid object with interior, camera and light. Textures are declared separately and easy to edit.

- **img2obj** - PNG to Wavefront OBJ converter. Exported file contains 3D mesh only.

**Update:** As a part of major update, beside complete rewriting of POVRay export, Wavefront OBJ and stereolithography STL (for 3D-printing) exports were also added.
- **img2stl** - PNG to STL converter. Exported file contain 3D mesh with side and bottom meshes necessary for 3D printer software.

Note that img2pov, img2obj and img2stl may be both run as standalone programs and be imported into some other software (currently in main img2mesh).

![Preview of img2mesh output files in one folder](https://dnyarri.github.io/imgmesh/printscreen.png)

Current dir contain most recent version of img2mesh program. Some previous versions are saved in *"old_versions"* for future alien archeologist to dig.

*Dependencies:* [PyPNG](https://gitlab.com/drj11/pypng), Tkinter. The former is placed in this repo and, thank the Maker, will work right after downloading; the latter included in all typical Python installation.

*Usage:* program equipped with minimal GUI, so all you have to do after starting the program is use standard "Open..." GUI to open image file, then use standard "Save..." GUI to set POVRay scene file to be created, then wait while program does the job, then open resulting POV file with POVRay and render the scene. Scene contains enough basic stuff (globals, light, camera) to be rendered successfully right after exporting without any editing.
*Usage:* programs are equipped with minimal GUI, so all you have to do after starting the program is use standard "Open..." dialog to open image file, then use standard "Save..." to name exported file to be created, then wait while program does the job, then open resulting file with suitable software and render the scene.

More software at:

Expand Down
Binary file removed bsk.ico
Binary file not shown.
Binary file removed g.ico
Binary file not shown.
Binary file removed geo.ico
Binary file not shown.
226 changes: 0 additions & 226 deletions img2mesh-OBJ.py

This file was deleted.

Loading

0 comments on commit 4a13560

Please sign in to comment.