栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

从零开始简单 3D 光栅化之环境配置

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从零开始简单 3D 光栅化之环境配置

从零开始简单 3D 光栅化之环境配置
  • 环境配置
    • 下载 Qt
    • 创建一个项目
    • 如何创建画布

本人才疏学浅,有什么错误欢迎指出。感激不尽。

环境配置

为了跨平台使用 Qt + C++来开发。简单的 C++ 特性。不需要高级特性。Qt 带有窗口,不需要去写入文件中来查看渲染结果。

下载 Qt

Qt 下载地址 。下载完之后直接默认下一步就可以了。

安装完成。

创建一个项目








最后下一步完成。
可以得到一个窗口。

如何创建画布

在这里我们使用 QImage 实现渲染。针对所有需要渲染的数据转成 QImage 来实现渲染。下面是代码。

  1. 在 MainWindow 添加如下代码。
private:
    Ui::MainWindow *ui;
    QImage* canvas;
    QTimer timer;
  1. 添加两个函数。
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots:
    void render();

private:
    void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE;

private:
    Ui::MainWindow *ui;
  1. 去 cpp 文件里面实现。
void MainWindow::paintEvent(QPaintEvent *)
{

    if(canvas)
    {
        QPainter painter(this);
        painter.drawImage(0, 0, *(canvas->getCanvas()));
    }
    // std::cout << 619 << std::endl;
}
void MainWindow::render()
{
   // 提供渲染数据 TODO
   update();
}
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    int w = 640;
	int h = 320;
    setFixedSize(w, h);
	canvas = new QImage(w, h, QImage::Format_RGBA8888);
	unsigned int color = 4284769535;
	for(int x = 0; x < w; ++x)
	{
	 for(int y = 0; y < h; ++y)
	 {
	 	canvas->setPixel(x, y, color);
	 }
	}
    connect(&timer, &QTimer::timeout, this, &MainWindow::render);
    timer.start(1);
}

运行程序应该会有一个窗口

如果出现这个窗口,可以恭喜你配好环境了。
完毕。
未完待续。。。
返回文章合集

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号