Material

Properties: aspose.threed.shading (aspose-3d-foss)

Aspose.3D FOSS क्लासिक शेडिंग पदानुक्रम में दो मैटेरियल क्लासेस प्रदान करता है:

  • LambertMaterial: डिफ्यूज़ मैट शेडिंग (कोई स्पेक्युलैरिटी नहीं)
  • PhongMaterial: लैम्बर्ट को स्पेक्युलर हाइलाइट्स और शाइननेस के साथ विस्तारित करता है

दोनों को एक को सौंपा जाता है Node के माध्यम से node.material. रंग सेट करने के लिए उपयोग किया जाता है Vector3(r, g, b) जहाँ घटक हैं [0.0, 1.0].


LambertMaterial

class LambertMaterial(Material):

Properties

A3DObjectMaterialLambertMaterial

Properties

LambertMaterial(name: str = None)

Properties

NameTypeAccessDescription
namestrRead/WriteGets or sets the name.
propertiesPropertyCollectionReadGets the properties.

PhongMaterial

class PhongMaterial(LambertMaterial):

Properties

A3DObjectMaterialLambertMaterialPhongMaterial

सभी को विरासत में लेता है LambertMaterial गुण और जोड़ता है:

scale()

SignatureDescription
__init__(name: str)
get_texture(slot_name: str)Not implemented in the FOSS edition — throws at runtime. Retrieves the texture assigned to the specified slot name
set_texture(slot_name: str, texture)Not implemented in the FOSS edition — throws at runtime. Sets the texture value.
find_property(property_name: str)
get_property(property: str)
set_property(property: str, value)Sets the property value.
remove_property(property)

उपयोग उदाहरण

लैम्बर्ट मैट सामग्री

from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.shading import LambertMaterial
from aspose.threed.utilities import Vector3, Vector4

scene = Scene()

# Build a simple triangle mesh
mesh = Mesh()
mesh.control_points.append(Vector4(0, 0, 0, 1))
mesh.control_points.append(Vector4(1, 0, 0, 1))
mesh.control_points.append(Vector4(0.5, 1, 0, 1))
mesh.create_polygon(0, 1, 2)

# Create a matte red material
mat = LambertMaterial("red-matte")
mat.diffuse_color = Vector3(0.8, 0.1, 0.1)    # R, G, B in [0, 1]
mat.ambient_color = Vector3(0.1, 0.05, 0.05)

node = scene.root_node.create_child_node("triangle", mesh)
node.material = mat

scene.save("lambert.obj")

फ़ोंग चमकदार सामग्री

from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.shading import PhongMaterial
from aspose.threed.utilities import Vector3, Vector4

scene = Scene()

mesh = Mesh()
mesh.control_points.append(Vector4(0, 0, 0, 1))
mesh.control_points.append(Vector4(1, 0, 0, 1))
mesh.control_points.append(Vector4(0.5, 1, 0, 1))
mesh.create_polygon(0, 1, 2)

mat = PhongMaterial("shiny-blue")
mat.diffuse_color = Vector3(0.1, 0.2, 0.8)   # blue
mat.specular_color = Vector3(1.0, 1.0, 1.0)  # white highlights
mat.specular_factor = 0.5
mat.shininess = 64.0                           # tight specular lobe
mat.ambient_color = Vector3(0.05, 0.05, 0.1)

node = scene.root_node.create_child_node("mesh", mesh)
node.material = mat

scene.save("phong.obj")

अर्ध-पारदर्शी सामग्री

from aspose.threed.shading import LambertMaterial
from aspose.threed.utilities import Vector3

mat = LambertMaterial("glass")
mat.diffuse_color = Vector3(0.7, 0.9, 1.0)   # faint blue tint
mat.transparency = 0.7                         # 70% transparent

आयातित सीन से सामग्री पढ़ें

from aspose.threed import Scene
from aspose.threed.shading import LambertMaterial, PhongMaterial

scene = Scene()
scene.open("model.obj")

def inspect_node(node):
    if node.material:
        m = node.material
        kind = "Phong" if isinstance(m, PhongMaterial) else "Lambert"
        print(f"Node '{node.name}': {kind}: diffuse={m.diffuse_color}")
        if isinstance(m, PhongMaterial):
            print(f"  shininess={m.shininess}")
    for child in node.child_nodes:
        inspect_node(child)

inspect_node(scene.root_node)

PbrMaterial

class PbrMaterial(Material):

Properties

A3DObjectMaterialPbrMaterial

PBR (फ़िज़िकली बेस्ड रेंडरिंग) सामग्री। glTF 2.0 और अन्य PBR-सक्षम फ़ॉर्मैट्स द्वारा उपयोग किया जाता है। एक को असाइन किया गया Node के माध्यम से node.material.

Properties

PbrMaterial(name: str = None, albedo: Vector3 = None)

Properties

क्लास मेथड

उपयोग उदाहरण

from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.shading import PbrMaterial
from aspose.threed.utilities import Vector3, Vector4

scene = Scene()

mesh = Mesh()
mesh.control_points.append(Vector4(0, 0, 0, 1))
mesh.control_points.append(Vector4(1, 0, 0, 1))
mesh.control_points.append(Vector4(0.5, 1, 0, 1))
mesh.create_polygon(0, 1, 2)

mat = PbrMaterial("pbr-metal")
mat.albedo = Vector3(0.8, 0.6, 0.2)    # gold-ish base color
mat.metallic_factor = 0.9
mat.roughness_factor = 0.2

node = scene.root_node.create_child_node("mesh", mesh)
node.material = mat

scene.save("pbr.glb")

संबंधित देखें

 हिन्दी