QGoochMaterial类

class Qt3DExtras::QGoochMaterial

QGoochMaterial提供了一个材质,该材质实现了在CAD和CAM应用中流行的Gooch着色模型。更多...

头文件 #include <QGoochMaterial>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3dextras)
target_link_libraries(mytarget PRIVATE Qt6::3dextras)
qmakeQT += 3dextras
继承 Qt3DRender::QMaterial

属性

公共函数

QGoochMaterial(Qt3DCore::QNode *parent = nullptr)
floatalpha() const
floatbeta() const
QColorcool() const
QColordiffuse() const
floatshininess() const
QColorspecular() const
QColorwarm() const

公共槽

voidsetAlpha(float alpha)
voidsetBeta(float beta)
voidsetCool(const QColor &cool)
voidsetDiffuse(const QColor &diffuse)
voidsetShininess(float shininess)
voidsetSpecular(const QColor &specular)
voidsetWarm(const QColor &warm)

信号

voidalphaChanged(float alpha)
voidbetaChanged(float beta)
voidcoolChanged(const QColor &cool)
voiddiffuseChanged(const QColor &diffuse)
voidshininessChanged(float shininess)
voidspecularChanged(const QColor &specular)
voidwarmChanged(const QColor &warm)

详细信息

高奇光照模型使用颜色和亮度来帮助显示3D表面的曲率。这通常比全靠亮度变化的模型(如Phong模型)要好。在CAD和CAM应用等场景中,不是以逼真效果为目标的情况下,Gooch阴影模型与某种轮廓边缘绘制结合是一个流行的解决方案。

高奇光照模型在原始的高奇论文中得到全面解释。高奇模型将扩散对象颜色与用户提供的冷色和暖色混合,以产生颜色渐变的终点,该渐变用于根据从片段到光源的向量与片段的法向量之间的角度余弦值来着色对象。可选地,可以添加一个镜面高光。

此材料使用单次渲染过程的方法,并在每个片段上执行光照。

属性文档

alpha : float

持有当前alpha值。高奇着色器使用的颜色渐变的起点计算为:{c = cool + alpha * diffuse}。

访问函数

floatalpha() const
voidsetAlpha(float alpha)

通知信号

voidalphaChanged(float alpha)

beta : float

持有当前beta值。高奇着色器使用的颜色渐变的起点计算为:{c = warm + beta * diffuse}。

访问函数

floatbeta() const
voidsetBeta(float beta)

通知信号

voidbetaChanged(float beta)

cool : QColor

持有当前冷色。

访问函数

QColorcool() const
voidsetCool(const QColor &cool)

通知信号

voidcoolChanged(const QColor &cool)

diffuse : QColor

持有当前漫反射颜色。

访问函数

QColordiffuse() const
voidsetDiffuse(const QColor &diffuse)

通知信号

voiddiffuseChanged(const QColor &diffuse)

shininess : float

持有当前光泽值。较高的光泽值会导致更小且更明亮的高光。

访问函数

floatshininess() const
voidsetShininess(float shininess)

通知信号

voidshininessChanged(float shininess)

specular : QColor

持有当前镜面反射颜色。

访问函数

QColorspecular() const
voidsetSpecular(const QColor &specular)

通知信号

voidspecularChanged(const QColor &specular)

warm : QColor

持有当前暖色。

访问函数

QColorwarm() const
voidsetWarm(const QColor &warm)

通知信号

voidwarmChanged(const QColor &warm)

成员函数文档

[显式] QGoochMaterial::QGoochMaterial(Qt3DCore::QNode *parent = nullptr)

构造一个具有父对象 parent 的新 QGoochMaterial 实例。

© 2024 Qt 公司限公司。此处包含的文档贡献的版权属于各自的合法拥有者。此处提供的文档是根据自由软件基金会发布的条款,在GNU 自由文档许可证版本 1.3下许可的。Qt 和相应的标志是芬兰及世界其他国家和地区的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。