萌梦社区新一年的计划



  • 很快就是传统的农历新年了,在这里,给大家拜个早年!希望大家心想事成,万事如意,鸡年大吉!
    0_1485151940561_小黄鸡拜年.jpg
    然后呢,正如俗话所说,一年之际在于春,一日之计在于晨。新的一年,我们会对论坛作进一步的优化升级,完善充实我们论坛的内容,希望为大家提供更加好的动漫服务体验。因此我们打算这么做:

    1. 再次完善修改我们的主页,希望能够更加美观,给大家更好的浏览体验。
      主页从去年9月开始启用,现在难免会有些审美疲劳,加上我们新的主页还有一些问题,我们还不得不对其进行更新,排除我们遇到的问题。并且添加一些其它的元素,让主页更加漂亮起来;

    2. 重新整理我们软件的结构,让其和Qt一样,变成更加完美的跨平台软件。并且邀请第三方开发者协助我们开发完善软件。
      2016年,我们其实比较辛苦,因为我们缺乏一个协同工作的环境,所以有很多有爱心的朋友们想加入进来但却无法成功。今年呢,我们打算将我们的软件结构重新整理一下,让更多的开发者加入进来,我们以后可以愉快地进行我们产品的开发了。

    3. 推出一些我们的标志性产品,比如说我们的新Logo,新形象,新样式等等。这些逐渐地形成我们独有的文化,以后我们将它作为我们的软实力,介绍给大家。

    4. 初步的商业化,有关具体的形式需要探讨。

    暂时就是这些,我们还有可能和来自其它地方的朋友一起工作,制作出我们喜欢的硬件产品出来。目前还在商量中,希望早日实现。



  • 加油~!!!!!!!!!!!!!!!!!


 

最近的回复

  • 这个混合效果很赞!

    阅读更多
  • @里奇 快到碗里来~

    阅读更多
  • @青山白云 这个效果真的不错,还带半透明的特效。

    阅读更多
  • Opengl 和 Qml 混合编程 Opengl 描绘3D效果 Qml描绘2D效果 效果

    0_1527065966207_20180523_165855.gif

    源代码

    Fork me on Gitee

    加强版效果 1.底层的opengl描绘背景 2.在qml描绘前描绘opengl,所以opengl处于底层 3.中间层描绘qml 4.在qml描绘后描绘opengl,所以opengl处于顶层 5.使用QQuickItem构建组件,供qml调用,组件内部描绘opengl 6.为了让上层opengl背景透明

    观察可以发现每层的遮挡效果

    0_1527139142863_20180524_131344.gif

    1.底层的opengl描绘背景

    原理是在最远的地方放一张图片,放大图片,直到完全铺满视口

    //混合显示背景 glBlendFunc(GL_ONE, GL_ZERO); //描绘背景 glBindVertexArray(m_VAO[1]); glBindBuffer(GL_ARRAY_BUFFER, m_VBO[1]); glVertexAttribPointer(m_posAttr, 3, GL_FLOAT, GL_FALSE, sizeof(VertexData), (GLvoid*)0); glVertexAttribPointer(m_colAttr, 3, GL_FLOAT, GL_FALSE, sizeof(VertexData), (GLvoid*)(sizeof(QVector3D)*1)); glVertexAttribPointer(m_texcoordLocation, 2, GL_FLOAT, GL_FALSE, sizeof(VertexData), (GLvoid*)(sizeof(QVector3D)*2)); //背景的矩阵 QMatrix4x4 modelBg; modelBg.translate(0.0f, 0.0f, -10.0f); modelBg.scale(4.0f * 8, 3.0f * 8, 1.0f); modelBg.rotate(0, 0, 1, 0); m_program->setUniformValue(m_model, modelBg); m_textureBg->bind(); glDrawArrays(GL_QUADS,0, 4); m_textureBg->release(); 2.在qml描绘前描绘opengl,所以opengl处于底层

    以前我们是用timer来更新绘制,现在我们根据qml绘制时机,在渲染前,先渲染opengl,且不清除画面,然后再绘制qml,这样就变成上下两层,

    connect(window(), &QQuickWindow::beforeRendering, m_triangleWindow, &TriangleWindow::renderNow, Qt::DirectConnection); //渲染qml前不清画面,保留opengl win->setClearBeforeRendering(false); 4.在qml描绘后描绘opengl,所以opengl处于顶层

    渲染qml后,再次渲染opengl

    connect(window(), &QQuickWindow::afterRendering, m_triangleWindow, &UpTriangleWindow::renderNow, Qt::DirectConnection); mainwindow类继承QQuickItem,里面使用渲染qml前绘制opengl upmainwindow类继承QQuickItem,里面使用渲染qml后绘制opengl mainwindow类使用TriangleWindow这个opengl类,TriangleWindow里面绘制了背景图片 upmainwindow类使用UpTriangleWindow这个opengl类,里面为了透明背景,没有清除GL_COLOR_BUFFER_BIT颜色缓冲区 关于清除opengl背景问题,我使用混合,成功去除了清除色,但是背景仍然显示一个黑色,实在没有办法,于是使用了这个馊主意——没有清除GL_COLOR_BUFFER_BIT 注册

    将c++类注册到qml使用

    //注册opengl到qml qmlRegisterType<MainWindow>("MainWindow", 1, 0, "MainWindow"); qmlRegisterType<UpMainWindow>("UpMainWindow", 1, 0, "UpMainWindow"); 调用

    0_1527140533208_08cee63c-6392-4ad8-8ffe-d4e71ee6fdb1-image.png

    阅读更多

关注我们

微博
QQ群











召唤蕾姆