threed

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

包 threed 提供统一的 3D 模型生成接口,支持文本转 3D 和图像转 3D 两种模式, 并适配 Meshy 与 Tripo3D 两个主流服务商。

概述

本包为上层业务屏蔽不同 3D 生成服务商在 API 协议、任务轮询和输出格式上的差异, 对外暴露一致的请求/响应模型。典型使用场景包括:

  • 通过文本描述生成 3D 模型(text-to-3D)。
  • 通过单张或多视角图像生成 3D 模型(image-to-3D / multiview-to-3D)。
  • 获取 GLB、FBX、OBJ、USDZ 等多种格式的模型文件。

核心接口

  • ThreeDProvider — 3D 生成的统一抽象,包含 Name() 与 Generate() 方法。
  • GenerateRequest — 生成请求,支持 prompt、image、format、quality 等参数。
  • GenerateResponse — 生成响应,包含模型下载链接、缩略图与用量统计。
  • ModelData — 单个生成模型的元数据(URL、格式、缩略图)。

主要能力

  • Meshy 适配:通过 MeshyProvider 对接 Meshy API,支持 text-to-3D 与 image-to-3D,可选 preview / refine 质量等级。
  • Tripo3D 适配:通过 TripoProvider 对接 Tripo3D API,支持 text-to-model、 image-to-model 与 multiview-to-model 三种任务类型。
  • 异步轮询:两个 Provider 均内置任务状态轮询,调用方无需关心异步细节。
  • 多格式输出:支持 GLB、FBX、OBJ、USDZ 格式选择。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GenerateRequest

type GenerateRequest struct {
	Prompt      string   `json:"prompt,omitempty"`       // Text description
	Image       string   `json:"image,omitempty"`        // Base64 image for image-to-3D
	ImageURL    string   `json:"image_url,omitempty"`    // Image URL
	Images      []string `json:"images,omitempty"`       // Multi-view images
	Model       string   `json:"model,omitempty"`        // Model to use
	Format      string   `json:"format,omitempty"`       // Output format (glb, fbx, obj, usdz)
	Style       string   `json:"style,omitempty"`        // Style preset
	Quality     string   `json:"quality,omitempty"`      // Quality level (draft, standard, high)
	TextureSize int      `json:"texture_size,omitempty"` // Texture resolution
}

生成请求代表一个 三维生成请求 。

type GenerateResponse

type GenerateResponse struct {
	Provider  string      `json:"provider"`
	Model     string      `json:"model"`
	Models    []ModelData `json:"models"`
	Usage     ThreeDUsage `json:"usage"`
	CreatedAt time.Time   `json:"created_at"`
}

生成响应(Generate Response)代表3D生成响应.

type MeshyConfig

type MeshyConfig struct {
	APIKey  string        `json:"api_key" yaml:"api_key"`
	BaseURL string        `json:"base_url" yaml:"base_url"`
	Model   string        `json:"model,omitempty" yaml:"model,omitempty"`
	Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
}

MeshyConfig配置了 Meshy 3D提供者.

func DefaultMeshyConfig

func DefaultMeshyConfig() MeshyConfig

默认 MeshyConfig 返回默认 Meshy 配置 。

type MeshyProvider

type MeshyProvider struct {
	// contains filtered or unexported fields
}

MeshyProvider使用Meshy API执行3D生成.

func NewMeshyProvider

func NewMeshyProvider(cfg MeshyConfig) *MeshyProvider

NewMeshyProvider 创建新的 Meshy 3D 提供者.

func (*MeshyProvider) Generate

生成使用Messy API创建了3D模型.

func (*MeshyProvider) Name

func (p *MeshyProvider) Name() string

type ModelData

type ModelData struct {
	ID           string `json:"id,omitempty"`
	URL          string `json:"url,omitempty"`           // Download URL
	B64Data      string `json:"b64_data,omitempty"`      // Base64 encoded model
	Format       string `json:"format"`                  // File format
	TextureURL   string `json:"texture_url,omitempty"`   // Texture download URL
	ThumbnailURL string `json:"thumbnail_url,omitempty"` // Preview image
}

ModelData代表生成的3D模型.

type ThreeDProvider

type ThreeDProvider interface {
	Name() string
	Generate(ctx context.Context, req *GenerateRequest) (*GenerateResponse, error)
}

ThreeDProvider为3D模型生成定义了接口.

type ThreeDUsage

type ThreeDUsage struct {
	ModelsGenerated int     `json:"models_generated"`
	Credits         float64 `json:"credits,omitempty"`
}

3DUsage包含使用信息.

type TripoConfig

type TripoConfig struct {
	APIKey  string        `json:"api_key" yaml:"api_key"`
	BaseURL string        `json:"base_url" yaml:"base_url"`
	Model   string        `json:"model,omitempty" yaml:"model,omitempty"`
	Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
}

TripoConfig 配置 Tripo3D 提供者 。

func DefaultTripoConfig

func DefaultTripoConfig() TripoConfig

默认 TripoConfig 返回默认 Tripo3D 配置 。

type TripoProvider

type TripoProvider struct {
	// contains filtered or unexported fields
}

Tripo Provider使用 Tripo3D API执行3D生成.

func NewTripoProvider

func NewTripoProvider(cfg TripoConfig) *TripoProvider

NewTripoProvider 创建新的 Tripo3D 提供者.

func (*TripoProvider) Generate

生成使用Tripo3D API创建了3D模型.

func (*TripoProvider) Name

func (p *TripoProvider) Name() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL