1. Продукти
  2.   3D
  3.   GO
  4.   Pinhole
 
  

Безкоштовна бібліотека Go для 3D каркасного малювання

Відкрита бібліотека Go для 3D каркасного малювання. Вона дозволяє розробникам програмного забезпечення створювати та керувати 3D‑сценами, рендерити 3D файли за допомогою простого API для візуалізації структури даних.

Що таке бібліотека Pinhole?

У постійно розвиваючомуся світі програмування нові інструменти постійно розширюють творчі можливості — і Pinhole виділяється як потужний відкритий Go‑API для 3D‑моделювання каркасних зображень. Цей безкоштовний 3D‑Go API дозволяє розробникам створювати каркасні 3D‑малюнки, рендерити 3D‑файли та проектувати складні візуалізації без необхідності освоювати низькорівневі графічні алгоритми. Завдяки чистому та доступному інтерфейсу Pinhole спрощує створення 3D‑об’єктів, визначення користувацьких об’єктів та побудову занурювальних 3D‑сцен. Незалежно від того, чи хочете ви додати нове коло, трансформувати існуюче коло чи керувати цілою 3D‑сценою, Pinhole дає змогу як початківцям, так і досвідченим розробникам зосередитися на творчості, а не на складності.

Що робить Pinhole особливо привабливим, так це його інтуїтивний API для універсального створення об’єктів та безшовного управління сценами. Розробники програмного забезпечення можуть легко встановлювати точки зору, маніпулювати формами та оживляти концепції каркасних моделей без крутого навчального порогу. Ідеальний для дизайнерів, викладачів, художників та допитливих кодерів, Pinhole перетворює створення 3D‑об’єктів і їх рендеринг у приємний, простий процес. Завдяки абстрагуванню складної логіки рендерингу, він дозволяє будь‑кому експериментувати, інновувати та створювати візуально захоплюючі 3D‑каркасні візуалізації. Якщо ви хочете дослідити світ 3D‑каркасного малювання у Go, Pinhole пропонує ідеальний баланс простоти, гнучкості та творчої свободи.

Previous Next

Початок роботи з Pinhole

Рекомендований спосіб встановлення Pinhole — використання GitHub. Будь ласка, використайте наступну команду для плавної інсталяції.

Встановлення Pinhole API за допомогою команди Get

$ go get -u github.com/tidwall/pinhole 

Ви можете завантажити скомпільовану спільну бібліотеку з репозиторію Github.

Створення та керування 3D‑сценою за допомогою Go API

Відкрита бібліотека Pinhole дозволяє розробникам програмного забезпечення створювати та керувати 3D‑сценою у своїх власних Go‑додатках. Бібліотека включає підтримку кількох важливих функцій, таких як створення базової 3D‑сцени, додавання об’єктів, налаштування камери, рендеринг сцени та багато іншого. Бібліотека надає різноманітні примітивні 3D‑форми, які ви можете використовувати у своїй сцені. Також можливо створювати власні об’єкти, визначаючи вершини, ребра або грані, і додавати їх до сцени. Наведений нижче приклад показує, як розробники можуть створити 3D‑сцену за допомогою команд Go.

Як створити базову 3D‑сцену за допомогою бібліотеки Go?

import "github.com/tidwall/pinhole"

// Initialize the Scene
scene := pinhole.NewScene()

// Create 3D Objects:
cube := pinhole.NewCube()

//create custom objects and added to the scene
triangle := pinhole.NewObject()
triangle.Vertices = []pinhole.Vertex{
    {X: 0, Y: 0, Z: 0},
    {X: 1, Y: 0, Z: 0},
    {X: 0, Y: 1, Z: 0},
}
triangle.Edges = []pinhole.Edge{
    {0, 1},
    {1, 2},
    {2, 0},
}

scene.AddObject(cube)
scene.AddObject(triangle)

// Configure the Camera

camera := pinhole.NewCamera()
camera.Position = pinhole.Vector{X: 0, Y: 0, Z: 5} // Adjust the camera position
camera.Target = pinhole.Vector{X: 0, Y: 0, Z: 0}   // Set the camera's target (where it's looking)
scene.SetCamera(camera)

// Render the Scene and display out

renderer := pinhole.NewRenderer(scene)
renderer.Render()

Налаштування рендерингу та керування камерою

Розробники програмного забезпечення можуть налаштовувати стиль рендерингу каркасних сцен, використовуючи параметри кольору ліній, товщини та налаштувань фону. Така гнучкість дає змогу розробникам досягти бажаної візуальної естетики. Крім того, бібліотека надає потужні керування камерою, дозволяючи розробникам регулювати позицію камери, орієнтацію та параметри проекції. Ця функція забезпечує динамічне дослідження 3D‑сцен та підвищує взаємодію користувачів.

Універсальне створення об’єктів за допомогою Go API

Бібліотека Pinhole включає широкий спектр примітивних форм, таких як куби, сфери та конуси, що спрощує створення поширених 3D‑об’єктів. Крім того, розробники можуть визначати власні об’єкти, вказуючи вершини, ребра та грані, що дозволяє створювати складні та унікальні каркасові сцени. Інженери та дизайнери можуть використовувати бібліотеку для швидкого прототипування та візуалізації 3D‑моделей, що допомагає оцінювати проєкти та виявляти потенційні проблеми ще до переходу до повномасштабної розробки.

Як додати, обертати та трансформувати коло за допомогою Go API?

p := pinhole.New()
p.DrawCube(-0.3, -0.3, -0.3, 0.3, 0.3, 0.3)
p.Rotate(math.Pi/3, math.Pi/6, 0)

p.Begin()
p.DrawCircle(0, 0, 0, 0.2)
p.Rotate(0, math.Pi/2, 0)
p.Translate(-0.6, -0.4, 0)
p.Colorize(color.RGBA{255, 0, 0, 255})
p.End()

p.SavePNG("cube.png", 500, 500, nil)

 Українська