Skip to main content

Powerful 3D rendering engine for Python

Project description

ManoRender - Advanced 3D Rendering Engine

ManoRender is a powerful and flexible 3D rendering engine built with Python. It provides a comprehensive set of tools for creating, manipulating, and rendering 3D scenes.

Features

  • Advanced 3D Object Rendering
  • Scene Management
  • Camera Control
  • Lighting System
  • Material System
  • Real-time Rendering
  • GUI Support
  • Web-based Rendering
  • Error Handling
  • Entity System
  • Physics Integration
  • Shader Support
  • Texture Management

Installation

# Install basic requirements
pip install -r renderer.mano

# Install development tools (optional)
pip install manorender[dev]

# Install documentation tools (optional)
pip install manorender[docs]

Usage

from manorender import ManoRender

# Create a new renderer
renderer = ManoRender()

# Create a new scene
scene = renderer.scene_new("main_scene")

# Camera settings
renderer.camera_new(0, 0, 10, 0, 0, 0)

# Add light
renderer.add_light(position=(0, 0, 10), color=(1, 1, 1))

# Entity operations
entity = renderer.sins_entity("main_entity")
entity.move(1, 2, 3).rotate(0, 45, 0).scale(2, 2, 2)

# Start rendering
renderer.render_start()
renderer.render(scene)
renderer.complete_ren()

Advanced Features

Error Handling

# Check for errors
entity.add_error("Test error")
renderer.command_line("main_entity")
entity.clear_errors()

Entity Management

# Create and destroy entities
entity = renderer.sins_entity("entity1")
# ... do something with entity ...
renderer.point_entity("entity1")

Physics Integration

# Add physics properties
entity.physics.mass = 1.0
entity.physics.friction = 0.5
entity.physics.restitution = 0.8

Development

The project is actively developed and new features are continuously being added. We welcome contributions from the community.

Documentation

For detailed documentation, please visit: https://manorender.readthedocs.io

Support

Texture Kullanımı

Texture'ları kullanmak için şu adımları takip edin:

  1. Texture'ı yükle:
# Temel texture yükleme
renderer.get_texture("wood_texture", "wood.png")

# Gelişmiş texture yükleme
renderer.get_texture(
    id="wood_texture",
    file="wood.png",
    mipmaps=True,          # Mipmapping etkin
    anisotropic=True,      # Anizotropik filtreleme etkin
    compression=True,      # Texture sıkıştırma etkin
    srgb=True             # sRGB renk uzayı etkin
)
  1. Objeye texture uygula:
# Temel texture uygulama
renderer.set_texture("wood_texture", "cube")

# Gelişmiş texture uygulama
renderer.set_texture(
    id="wood_texture",
    object="cube",
    uv_scale=2.0,        # UV ölçeklendirme
    uv_offset=(0.5, 0.5),# UV kaydırma
    repeat=True,         # Tekrarlama etkin
    clamp=False          # Kenar kırma etkin
)

Gelişmiş Texture Özellikleri

Texture Atlas

# Texture atlas oluştur
renderer.create_texture_atlas(
    atlas_id="terrain_atlas",
    textures={
        "grass": (0, 0),
        "dirt": (512, 0),
        "rock": (0, 512)
    },
    size=(2048, 2048)
)

Cubemap

# Cubemap oluştur
renderer.create_cubemap(
    cubemap_id="skybox",
    faces={
        "right": "right.png",
        "left": "left.png",
        "top": "top.png",
        "bottom": "bottom.png",
        "front": "front.png",
        "back": "back.png"
    }
)

Normal Map

# Normal map oluştur
renderer.create_normal_map(
    id="normal_map",
    file="heightmap.png",
    strength=1.0
)

Specular Map

# Specular map oluştur
renderer.create_specular_map(
    id="specular_map",
    file="specular.png",
    glossiness=0.8
)

Emissive Map

# Emissive map oluştur
renderer.create_emissive_map(
    id="emissive_map",
    file="emissive.png",
    intensity=0.5
)

Roughness Map

# Roughness map oluştur
renderer.create_roughness_map(
    id="roughness_map",
    file="roughness.png",
    strength=0.7
)

Parallax Map

# Parallax map oluştur
renderer.create_parallax_map(
    id="parallax_map",
    file="heightmap.png",
    height=0.1,
    layers=8
)

Displacement Map

# Displacement map oluştur
renderer.create_displacement_map(
    id="displacement_map",
    file="displacement.png",
    strength=1.0
)

Flow Map

# Flow map oluştur
renderer.create_flow_map(
    id="flow_map",
    file="flow.png",
    speed=1.0
)

Emissive Gradient

# Emissive gradient oluştur
renderer.create_emissive_gradient(
    id="gradient",
    colors=[
        (255, 0, 0),
        (0, 255, 0),
        (0, 0, 255)
    ],
    positions=[0.0, 0.5, 1.0]
)

Procedural Texture

# Yordamsal texture oluştur
renderer.create_procedural_texture(
    id="noise_texture",
    type="noise",
    parameters={
        "size": (1024, 1024),
        "octaves": 6,
        "persistence": 0.5,
        "lacunarity": 2.0,
        "scale": 1.0
    }
)

Texture Animation

# Texture animasyonu oluştur
renderer.create_texture_animation(
    id="animation",
    frames=[
        "frame1.png",
        "frame2.png",
        "frame3.png"
    ],
    fps=24
)

# Animasyonu güncelle
renderer.update_texture_animation("animation")

Texture Filter

# Blur filtresi oluştur
renderer.create_texture_filter(
    id="blur_filter",
    type="blur",
    parameters={
        "size": 3,
        "sigma": 1.0
    }
)

# Texture'e filtre uygula
renderer.apply_texture_filter("blur_filter", "texture_id")

Texture Composite

# Texture bileşimi oluştur
renderer.create_texture_composite(
    id="composite",
    textures=["texture1", "texture2"],
    blend_mode="add",
    opacity=1.0
)

Texture Mask

# Texture maskesi oluştur
renderer.create_texture_mask(
    id="masked_texture",
    mask_file="mask.png",
    texture_file="texture.png"
)

Texture Array

# Texture dizisi oluştur
renderer.create_texture_array(
    id="texture_array",
    textures=["tex1", "tex2", "tex3"],
    layers=3
)

Cubemap Array

# Cubemap dizisi oluştur
renderer.create_cubemap_array(
    id="cubemap_array",
    cubemaps=["cubemap1", "cubemap2"],
    layers=2
)

## License

Plazma Licence
Local Projects
Avaible Projects
Setupable Projects
Line up!
<profile> Engine </profile>

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manorender-0.1.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

manorender-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file manorender-0.1.0.tar.gz.

File metadata

  • Download URL: manorender-0.1.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for manorender-0.1.0.tar.gz
Algorithm Hash digest
SHA256 870a24bc0fdb8d69cacee46c4403a8d209c12deeabeb1729247504b6e9dcdf1c
MD5 df31ed8a0281048039cfc5aa5d2ebd6f
BLAKE2b-256 9811a2e6d21f57173f262bfc489c518438245a2df8ced3c37ede0dc32c177707

See more details on using hashes here.

File details

Details for the file manorender-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: manorender-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for manorender-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1778e3a75866a473b76efae11ab03ef3e4478a0e19ab7f28e0726b819a3c7274
MD5 c136139f72ce81c279ba2884928de4b6
BLAKE2b-256 a4411b1ba6a276538a8ea9904b0ec3f898e664335506831b0cf4bf216c655848

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page