2016-09-09 7 views
0

Qt3Dでライトの設定を変更するにはどうすればよいですか?Qt3Dでライトを変更するには

私はそれがframegraphの一部であるべきだと思っていますが、標準のforwardrendererで軽度の設定で接続されたメソッドはありません。

答えて

1

私が覚えているところでは、直接の光の設定はありません。

あなたがしていることは、スポットライトを作成して調整することです。 Qt3D例から

:別にQDirectionalLightQPointLightも存在することから

/**************************************************************************** 
** 
** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). 
** Contact: http://www.qt-project.org/legal 
** 
** This file is part of the Qt3D module of the Qt Toolkit. 
** 
** $QT_BEGIN_LICENSE:LGPL3$ 
** Commercial License Usage 
** Licensees holding valid commercial Qt licenses may use this file in 
** accordance with the commercial license agreement provided with the 
** Software or, alternatively, in accordance with the terms contained in 
** a written agreement between you and The Qt Company. For licensing terms 
** and conditions see http://www.qt.io/terms-conditions. For further 
** information use the contact form at http://www.qt.io/contact-us. 
** 
** GNU Lesser General Public License Usage 
** Alternatively, this file may be used under the terms of the GNU Lesser 
** General Public License version 3 as published by the Free Software 
** Foundation and appearing in the file LICENSE.LGPLv3 included in the 
** packaging of this file. Please review the following information to 
** ensure the GNU Lesser General Public License version 3 requirements 
** will be met: https://www.gnu.org/licenses/lgpl.html. 
** 
** GNU General Public License Usage 
** Alternatively, this file may be used under the terms of the GNU 
** General Public License version 2.0 or later as published by the Free 
** Software Foundation and appearing in the file LICENSE.GPL included in 
** the packaging of this file. Please review the following information to 
** ensure the GNU General Public License version 2.0 requirements will be 
** met: http://www.gnu.org/licenses/gpl-2.0.html. 
** 
** $QT_END_LICENSE$ 
** 
****************************************************************************/ 

import Qt3D 2.0 
import Qt3D.Renderer 2.0 

Entity { 
    id: root 

    property vector3d lightPosition: Qt.vector3d(30.0, 30.0, 0.0) 
    property vector3d lightIntensity: Qt.vector3d(1.0, 1.0, 1.0) 

    readonly property Camera lightCamera: lightCamera 
    readonly property matrix4x4 lightViewProjection: lightCamera.projectionMatrix.times(lightCamera.matrix) 

    Camera { 
     id: lightCamera 
     objectName: "lightCameraLens" 
     projectionType: CameraLens.PerspectiveProjection 
     fieldOfView: 45 
     aspectRatio: 1 
     nearPlane : 0.1 
     farPlane : 200.0 
     position: root.lightPosition 
     viewCenter: Qt.vector3d(0.0, 0.0, 0.0) 
     upVector: Qt.vector3d(0.0, 1.0, 0.0) 
    } 
} 

Full example to light and shadows


1

ここで、rootEntityはシーンの他のすべてのエンティティの親です。

Qt3DCore::QEntity *lightEntity = new Qt3DCore::QEntity(rootEntity); 
Qt3DRender::QPointLight *light = new Qt3DRender::QPointLight(lightEntity); 
light->setColor("white"); 
light->setIntensity(1.); 
lightEntity->addComponent(light); 
関連する問題