91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-07
  • 語言: 其他
  • 標(biāo)簽: Qt??shadow??map??OpenGL??

資源簡介

要實(shí)現(xiàn)基于OpenGL ES 2.0的陰影映射,要攻克這三個(gè)技術(shù)難點(diǎn): 1、 熟練操作FBO。幀緩存FBO是需要熟練操控的,因?yàn)镕BO可以很快地將深度圖寫入一塊顯存中,然后作為紋理渲染到真實(shí)的場(chǎng)景中。 2、 掌握著色器的使用。由于OpenGL ES 2.0只允許使用著色器來對(duì)其進(jìn)行渲染,因此對(duì)著色器的書寫熟練程度要求較高。 3、 掌握將float深度數(shù)據(jù)分拆成vec4再將vec4合并成float的操作。這個(gè)已經(jīng)成為業(yè)內(nèi)熟練掌握的技能之一了,網(wǎng)絡(luò)上搜索“how to pack float into RGBA”,能夠得到很多有用的回答。

資源截圖

代碼片段和文件信息

#include?“Cube.h“

static?float?s_cubePositionData[]?=
{
????-1.0f-1.0f-1.0f?//?triangle?1?:?begin
????-1.0f-1.0f?1.0f
????-1.0f?1.0f?1.0f?//?triangle?1?:?end
????1.0f?1.0f-1.0f?//?triangle?2?:?begin
????-1.0f-1.0f-1.0f
????-1.0f?1.0f-1.0f?//?triangle?2?:?end
????1.0f-1.0f?1.0f
????-1.0f-1.0f-1.0f
????1.0f-1.0f-1.0f
????1.0f?1.0f-1.0f
????1.0f-1.0f-1.0f
????-1.0f-1.0f-1.0f
????-1.0f-1.0f-1.0f
????-1.0f?1.0f?1.0f
????-1.0f?1.0f-1.0f
????1.0f-1.0f?1.0f
????-1.0f-1.0f?1.0f
????-1.0f-1.0f-1.0f
????-1.0f?1.0f?1.0f
????-1.0f-1.0f?1.0f
????1.0f-1.0f?1.0f
????1.0f?1.0f?1.0f
????1.0f-1.0f-1.0f
????1.0f?1.0f-1.0f
????1.0f-1.0f-1.0f
????1.0f?1.0f?1.0f
????1.0f-1.0f?1.0f
????1.0f?1.0f?1.0f
????1.0f?1.0f-1.0f
????-1.0f?1.0f-1.0f
????1.0f?1.0f?1.0f
????-1.0f?1.0f-1.0f
????-1.0f?1.0f?1.0f
????1.0f?1.0f?1.0f
????-1.0f?1.0f?1.0f
????1.0f-1.0f?1.0f
};

static?float?s_cubeNormalData[]?=
{
????//?nX?nY?nZ
????-1.0f?0.0f?0.0f?//?triangle?1?:?begin
????-1.0f?0.0f?0.0f
????-1.0f?0.0f?0.0f?//?triangle?1?:?end
????0.0f?0.0f?-1.0f?//?triangle?2?:?begin
????0.0f?0.0f?-1.0f
????0.0f?0.0f?-1.0f?//?triangle?2?:?end
????0.0f-1.0f?0.0f?//
????0.0f-1.0f?0.0f
????0.0f-1.0f?0.0f
????0.0f?0.0f-1.0f?//
????0.0f?0.0f-1.0f
????0.0f?0.0f-1.0f
????-1.0f?0.0f?0.0f?//
????-1.0f?0.0f?0.0f
????-1.0f?0.0f?0.0f
????0.0f-1.0f?0.0f?//
????0.0f-1.0f?0.0f
????0.0f-1.0f?0.0f
????0.0f?0.0f?1.0f?//
????0.0f?0.0f?1.0f
????0.0f?0.0f?1.0f
????1.0f?0.0f?0.0f?//
????1.0f?0.0f?0.0f
????1.0f?0.0f?0.0f
????1.0f?0.0f?0.0f?//
????1.0f?0.0f?0.0f
????1.0f?0.0f?0.0f
????0.0f?1.0f?0.0f?//
????0.0f?1.0f?0.0f
????0.0f?1.0f?0.0f
????0.0f?1.0f?0.0f?//
????0.0f?1.0f?0.0f
????0.0f?1.0f?0.0f
????0.0f?0.0f?1.0f?//
????0.0f?0.0f?1.0f
????0.0f?0.0f?1.0f
};

Cube::Cube(?float?center[]?float?size?float?color[]?)
{
????initializeOpenGLFunctions(?);

????//set?color?data
????for?(?int?v?=?0;?v?????{
????????m_cubeColorData[4*v+0]?=?color[0];
????????m_cubeColorData[4*v+1]?=?color[1];
????????m_cubeColorData[4*v+2]?=?color[2];
????????m_cubeColorData[4*v+3]?=?color[3];
????}

????//resize?the?cube
????for?(int?i?=?0;?i?????{
????????m_cubePositionData[i]?=?s_cubePositionData[i]?*?size/2;
????}

????//move?the?center?of?the?cube?to?the?place?specified?in?parameter
????for?(int?j?=?0;?j?????{
????????m_cubePositionData[3*j]?=?m_cubePositionData[3*j]?+?center[0];
????????m_cubePositionData[3*j?+?1]?=?m_cubePositionData[3*j?+?1]?+?center[1];
????????m_cubePositionData[3*j?+?2]?=?m_cubePositionData[3*j?+?2]?+?center[2];
????}

????//?復(fù)制頂點(diǎn)數(shù)據(jù),用于渲染
????memcpy(?m_cubePosition?m_cubePositionData?sizeof(?float?)?*?108?);
????memcpy(?m_cubeNormal?s_cubeNormalData?sizeof(?floa

評(píng)論

共有 條評(píng)論