自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 Dust3D开源项目分析——渲染与材质部分 | 材质预览 Part 2

2021SC@SDUSCmaterialpreviewsgenerator.cpp用于实现具体的材质预览方法。#include <QGuiApplication>#include <QElapsedTimer>#include "materialpreviewsgenerator.h"#include "meshgenerator.h"#include "snapshotxml.h"#include "ds3file.h"#include "texturege.

2021-12-27 23:46:02 366

原创 Dust3D开源项目分析——渲染与材质部分 | 材质预览 Part 1

2021SC@SDUSCmaterialpreviewsgenerator.h定义了材质预览生成器类,它是QObject的公有继承子类。#ifndef DUST3D_MATERIAL_PREVIEWS_GENERATOR_H#define DUST3D_MATERIAL_PREVIEWS_GENERATOR_H#include <QObject>#include <map>#include <QUuid>#include <vector>.

2021-12-27 23:44:55 509

原创 Dust3D开源项目分析——渲染与材质部分 | 顶点数据结构

2021SC@SDUSCshaderVertex.h定义了用于渲染的顶点(Vertex)数据结构,本文将分析一个ShaderVertex拥有的属性。#ifndef DUST3D_SHADER_VERTEX_H#define DUST3D_SHADER_VERTEX_H#include <QOpenGLFunctions>#pragma pack(push)#pragma pack(1)typedef struct{ GLfloat posX; GLflo.

2021-12-27 23:40:42 1821

原创 Dust3D开源项目分析——模型处理部分 | 三角化面片

2021SC@SDUSC针对四边面或者N-Gon,执行mesh三角化命令。头文件#ifndef DUST3D_TRIANGULATE_FACES_H#define DUST3D_TRIANGULATE_FACES_H#include <QVector3D>#include <vector>bool triangulateFacesWithoutKeepVertices(std::vector<QVector3D> &vertices, c.

2021-12-27 23:36:12 497

原创 Dust3D开源项目分析——渲染与材质部分 | shadermesh绑定 Part 2

2021SC@SDUSCcpp文件。shadermesh绑定的具体实现。// This file follow the Stackoverflow content license: CC BY-SA 4.0,// since it's based on Prashanth N Udupa's work: https://stackoverflow.com/questions/35134270/how-to-use-qopenglframebufferobject-for-shadow-mapp.

2021-12-27 23:32:23 147

原创 Dust3D开源项目分析——渲染与材质部分 | shadermesh绑定 Part 1

2021SC@SDUSC这一部分负责读取shader并完成shadermesh的绑定头文件// This file follow the Stackoverflow content license: CC BY-SA 4.0,// since it's based on Prashanth N Udupa's work: https://stackoverflow.com/questions/35134270/how-to-use-qopenglframebufferobject-for-.

2021-12-27 23:25:08 175

原创 Dust3D开源项目分析——渲染与材质部分 | 材质初始化

2021SC@SDUSC读取快照信息,并从快照中初始化材质纹理。头文件 material.h#ifndef DUST3D_MATERIAL_H#define DUST3D_MATERIAL_H#include <QImage>#include <QUuid>#include "texturetype.h"#include "snapshot.h"struct MaterialTextures{ const QImage *textureImag.

2021-12-10 13:59:25 248

原创 Dust3D开源项目分析——骨骼与动画部分 | 关节树

2021SC@SDUSC这一部分文件主要负责构建储存骨骼层级关系的数据结构,是骨骼动画的基础。头文件部分 jointnodetree.h#ifndef DUST3D_JOINT_NODE_TREE_H#define DUST3D_JOINT_NODE_TREE_H#include <QMatrix4x4>#include <vector>#include <QQuaternion>#include "rig.h"struct JointNo..

2021-12-10 13:55:38 702

原创 Dust3D开源项目分析——渲染与材质部分 | 纹理生成 Part5

2021SC@SDUSCauto drawBySolubility = [&](const QUuid &partId, size_t triangleIndex, size_t firstVertexIndex, size_t secondVertexIndex, const QUuid &neighborPartId) { const std::vector<QVector2D> &uv = triangleVe.

2021-12-10 13:41:19 286

原创 Dust3D开源项目分析——渲染与材质部分 | 纹理生成 Part4

2021SC@SDUSC for (const auto &it: partUvRects) { const auto &partId = it.first; const auto &rects = it.second; auto findSourceColorResult = partColorMap.find(partId); if (findSourceColorResult != partColorMa..

2021-12-10 13:37:42 1264

原创 Dust3D开源项目分析——渲染与材质部分 | 纹理生成 Part3

2021SC@SDUSC纹理生成函数generate(),函数相对复杂,主要负责纹理的生成功能。因为代码跨度较大,这里会分成几篇文章进行分析。void TextureGenerator::generate(){ m_resultMesh = new Model(*m_object); if (nullptr == m_object->triangleVertexUvs()) return; if (nullptr == m_object-&

2021-12-10 13:31:14 183

原创 Dust3D开源项目分析——渲染与材质部分 | 纹理生成 Part2

2021SC@SDUSC预处理函数prepare()。void TextureGenerator::prepare(){ if (nullptr == m_snapshot) return; std::map<QUuid, QUuid> updatedMaterialIdMap; std::map<QUuid, bool> updatedCountershadedMap; for (const auto &am..

2021-12-10 12:57:04 227

原创 Dust3D开源项目分析——渲染与材质部分 | 纹理生成 Part1

2021SC@SDUSC通过阅读源码文件和查阅相关资料,笔者发现Dust 3D使用的图形引擎是(基于Qt的)OpenGL,或者说QOpenGL。就Qt 5.0 而言,QOpenGL是建立在OpenGL ES(Embeded System)2.0规范上的,可以说是OpenGL ES 3.0的弱化版本。事实上OpenGL ES 2.0是2004年发布的一个相当古老的版本,并不支持部分相对先进的OpenGL方法、数据格式、快捷算法等功能。笔者认为之所以选用2.0版本,一方面是因为Dust ...

2021-10-17 23:11:27 295

原创 Dust3D开源项目分析

2021SC@SDUSCDust3D是一款跨平台的开源交互式三维辅助建模软件,可以辅助创作者快速制作无缝的三维模型,以加速游戏等产业的角色制作、3D打印等流程。本篇为软件工程创新与实践项目分析系列的综述篇。经过团队讨论,我们认为dust3D项目的核心部分是关节节点的交互式创建与管理、关节节点到具有合理拓扑结构的三维模型的转化、实时绘制节点和模型的渲染管线这三部分。团队将围绕这些核心功能展开项目代码分析。笔者负责的主要是一部分交互式节点建模内容和渲染管线中的shader部分。以这些核心功能为基础,软件

2021-09-30 23:54:25 1177

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除