渲染设备、其渲染方法、程序和记录介质的制作方法_5

文档序号:9794106阅读:来源:国知局
,然实际上可有多于或等于两位之任意数量的参与者。
[0138]将能了解为令该渲染功能模块280知晓应将何组处理步骤施加于与一特定对象相关联的给定像素集合,该渲染功能模块280需要获知该特定对象究为一泛用对象或一可定制对象。这可藉由从该视讯游戏功能模块270所收到的渲染指令而获悉。例如,该渲染命令可包含一对象ID。为决定该对象是泛用对象还是可定制对象,该渲染功能模块280可基于该对象ID向该对象数据库1120咨询以寻得适当的记录1122,然后决定对于该记录1122之定制化栏位1128的内容。在另一具体实施例里,该渲染命令本身即可标定该对象究为泛用对象或可定制对象,并且可甚至含有纹理信息或是连向此者的链结。
[0139](i)对于泛用对象520的像素处理
[0140]现参照图9,此图说明在即如对象520之泛用对象的情况下,该像素处理子程序780内的步骤810-840。这些步骤可针对该泛用对象的各个像素P而执行,并且组成旅经该像素处理子程序的单一次通行。
[0141]在步骤810处,该渲染功能模块280可计算在像素P处的光谱照射,这会包含散射光照成份D i f f useLi ght ingP、镜射光照成份Spe cu IarLi ght ingP以及漫射光照成份AmbientLightingP。对步骤810的输入可包含如下项目,像是深度缓冲器(又称为「Z缓冲器」)、法线缓冲器、镜射因数缓冲器的内容,以及在所渲染观看点上具有载点之各式光源的起点、方向、强度、色彩及/或组态,以及所使用之光照模型的定义或参数化。据此,光线照射的计算作业可为高计算密集度的运算。
[0142]在一非限制性具体实施例里,「DiffUseLightingp」为「DiffuseLighting(p,i)」(在i上)的总和,其中「DiffuseLighting(p,i)」表示散射光照从光源「i」在像素p处的强度及色彩。在一非限制性具体实施例里,对于一给定光源「i」,DiffuseLighting(p, i)的数值可为按如表面法线与光源方向的内积所算得(又可标注为「η.I」)。同时,「SpecularLightingp」是代表镜射光照在像素P处的强度及色彩。在一非限制性具体实施例里,SpecularLightingp的数值可为按如反映光照向量与观看方向的内积所算得(又可标注为「r.V」)。最后,「AmbientLightingp」是表示周漫光照在像素P处的强度及色彩。同时,亦应了解熟习本项技艺之人士将能熟知用以计算在像素P处之DiffuseLightingp、SpecularLightingP 及 AmbientLightingp 的精确数学演算法。
[0143]在步骤820处,该渲染功能模块280可咨询该泛用对象(在本例中为对象520)的纹理以获得在像素P处的适当色彩数值。为识别该纹理,首先可藉由基于该对象ID向该对象数据库1120咨询以获得纹理ID,然后依据所获纹理ID向该纹理数据库1190咨询以得到在像素P处的散射色彩数值。所获的散射色彩数值可标注为DiffuseCOlOr_520P。特定地说,DiffuseColor_520P可表示在对应于像素P之点处该对象520纹理的取样(或内插)数值。
[0144]在步骤830处,该渲染功能模块280可计算像素P的像素数值。应注意到该词汇「像素数值」可意指一纯量或是一多重成份向量。在一非限制性具体实施例中,此多重成份向量的成份可为色彩(或色调、彩度)、饱和度(该色彩本身的强度)以及亮度。该词汇「强度」有时可用以表示亮度成份。在另一非限制性具体实施例中,该多重成份色彩向量的多重成份可为RGB(红、绿及蓝)。在一非限制性具体实施例中,该像素数值,这对于像素P是标注为Outputp,可藉由将散射数值以乘法方式合并于散射光照成份,然后再将镜射光照成份和漫射光照成份加入于此,所算得。换言之,Outputp= (DiffuseColor_520p*DiffuseLightingp)+SpecularLightingP+AmbientLightingP。应了解可对该像素p 的多个成份(即如RGB、YCbCr等等)每一个分别地算出Outputp。
[0145]最后,在步骤840处,可将该像素p经标注为OutputJ^像素数值存储在各位参与者的讯框缓冲器内。尤其,与该泛用对象520相关联的一给定像素对于参与者A、B及C来说在整个讯框缓冲器上都具有相同的像素数值,因此一旦已渲染所有与该泛用对象520相关联的像素之后,对于所有参与者而言该泛用对象520在图形上皆显见为相同。现参照图11,其中可观察到该泛用对象520对于所有参与者A、B及C是以相同的方式所遮蔽。因此,可一次计算像素数值Outputp,然后再复制到各个参与者的讯框缓冲器。从而,可藉由仅单一次渲染该泛用对象520,使得能够在所有参与者A、B及C之间共享像素数值Outputp以节省计算作业。这些像素数值亦可称为「影像数据」。
[0146](ii)可定制对象530的像素处理
[0147]现参照图1OA及1B,此图说明在即如对象530之可定制对象的情况下,该像素处理子程序780内的步骤810-840。这些步骤可针对该可定制对象的各个像素q而执行,并且组成旅经该像素处理子程序的多次通行。详细地说,图1OA是关于可对所有像素执行的第一通行,而图1OB是关于可对所有像素执行的第二通行。也有可能对于一些像素是以该第二通行开始,而同时对于其他像素则是进行该第一通行。
[0148]在步骤810处,该渲染功能模块280可计算在像素q处的光谱照射,这会包含散射光照成份Dif f useLi ghtingq、镜射光照成份SpecularLightingq以及漫射光照成份八1111^111:1^111:;[1^。即如在图9中的情况,对步骤810的输入(图1(^中)可包含如下项目,像是深度缓冲器(又称为「Z缓冲器」)、法线缓冲器、镜射因数缓冲器的内容,以及在所渲染观看点上具有载点之各式光源的起点、方向、强度、色彩及/或组态,以及所使用之光照模型的定义或参数化。
[0149]在一非限制性具体实施例里,「DiffuseLightingq」为「DiffuseLighting(q,i)」(在i上)的总和,其中「DiffuseLighting(q,i)」表示散射光照从光源「i」在像素q处的强度及色彩。在一非限制性具体实施例里,对于一给定光源「i」,DiffuseLighting(q, i)的数值可为按如表面法线与光源方向的内积所算得(又可标注为「η.I」)。同时,「SpecularLightingtJ是代表镜射光照在像素q处的强度及色彩。在一非限制性具体实施例里,SpecularLightin^!的数值可为按如反映光照向量与观看方向的内积所算得(又可标注为「r.V」)。最后,「AmbientLightingq」是表示周漫光照在像素q处的强度及色彩。同时,亦应了解熟习本项技艺之人士将能熟知用以计算在像素q处之DiffuseLightingq、SpecularLight ingq 及 AmbientLightingq 的精确数学演算法。
[0150]在步骤1010处,这仍构成该第一通行的一部份,该渲染功能模块280可计算该像素q的预遮蔽数值。在一非限制性具体实施例里,步骤1010可包含将这些光照成份划分为将由该可定制对象530的纹理数值(散射色彩)相乘者以及将被加计至该乘积者。从而,对于像素q可将该预遮蔽数值的两个成份识别如「0utput_lq」(乘法性)和「0utput_2q」(加法性)。在一非限制性具体实施例里,Output_lq = Diff useLight ingq(亦即「0utput_lq」表示在像素q处的散射光照数值);并且 0utput_2q = SpecularLight ingq+AmbientLightingq(亦即「0utput_2q」表示在像素q处之镜射及漫射光照数值的总和)。当然,注意到在没有漫射光照成份的情况下,或者是当于他处而非在该像素处理子程序780内加入此成份时,步骤1010并无须牵涉到任何实际的计算作业。
[0151]在步骤1020处,这也构成该第一通行的一部份,该渲染功能模块280将对于像素q的预遮蔽数值存储在一临时存储物内。这些预遮蔽数值可在依相同光照条件观看相同对象的所有参与者间共享。
[0152]现参照图10B,图中说明对于各个参与者所执行的第二通行。对一给定参与者所执行的第二通行包含针对各个像素q所执行的步骤820-840。
[0153]首先将是考量参与者A的范例。从而,在步骤820处,该渲染功能模块280可对于参与者A咨询该可定制对象(在本例中为对象530)的纹理以获得在像素q处的适当散射色彩数值。为识别该纹理,首先可藉由基于该对象ID和参与者ID向该对象数据库1120咨询以获得纹理ID,然后依据所获纹理ID向该纹理数据库1190咨询以得到在像素q处的散射色彩数值。所获散射色彩数值可标注为0丨打1186&3101'_530_49。特定地说,0丨打1186&3101'_530_41)可表示(对于参与者A)在对应于像素q之点处该对象530纹理的取样(或内插)数值。
[0154]在步骤830处,该渲染功能模块280可计算像素q的像素数值。应注意到该词汇「像素数值」可意指一纯量或是一多重成份向量。在一非限制性具体实施例中,此多重成份向量的成份可为色彩(或色调、彩度)、饱和度(该色彩本身的强度)以及亮度。该词汇「强度」有时可用以表示亮度成份。在另一非限制性具体实施例中,该多重成份向量的多重成份可为RGB(红、绿及蓝)。在一非限制性具体实施例中,像素数值,这对于像素q是标注为0utput_Aq,的计算方式为将散射色彩乘法地合并于散射光照成份(此值可自临时存储物按Outputjq所取得),然后再加到镜射光照成份及漫射光照成份的总和(此值可自临时存储物按0utput_2(5所取得)。换言之,0utput_Aq= (DiffuseColor_530_Aq*0utput_lq)+0utput_2q。应了解可对该像素q的多个成份(即如RGB、YCbCr等等)每一个分别地算出0utput_Aq。
[0155]最后,在步骤840处,可将该像素q经标注为0utput_Aq的像素数值存储在参与者A的讯框缓冲器内。
[0156]同样地,对于参与者B及C来说,在步骤820处,该渲染功能模块280可对于各个参与者存取该可定制对象(在本例中为对象530)的纹理以获得在像素q处的适当散射色彩数值。为识别该纹理,首先可藉由基于该对象ID和参与者ID向该对象数据库1120咨询以获得纹理ID,然后依据所获纹理ID向该纹理数据库1190咨询以得到在像素q处的散射色彩数值。对于参与者B及C而言,所获的散射色彩数值可分别地标注为DiffuSeCOlOr_530_Bq和DiffuseColor_530_Cq。
[0157]在步骤830处,该渲染功能模块280可计算出对于像素q的像素数值。在一非限制性具体实施例中,对于参与者B标注为0utput_Bq且对于参与者C标注为0utput_Cq之像素数值的计算方式为将散射色彩乘法地合并于散射光照成份(此值可自临时存储物按Output所取得),然后再加到镜射光照成份及漫射光照成份的总和(此值可自临时存储物按Outpui^Sc^l^f取得)。也就是说,0utput_Bq= (DiffuseColor_530_Bq*0utput_lq)+0utput_2q,而且 0utput_Cq= (DiffuseColor_530_Cq*0utput_lq)+0utput_2q。应了解可对该像素q的多个成份(即如RGB、YCbCr等等)每一个分别地算出0utput_Bq&0utput_Cq每一个。
[0158]最后,在步骤840处,将对于参与者B所计算的像素q像素数值OutputBq存储在参与者B的讯框缓冲器里,并且对于参与者C及像素数值0utput_Cq亦类似如此。
[0159]现参照图11,其中将能观察到该可定制对象530对于参与者A、B及C而言因像素数值0utput_Aq、0此卩111:_1^和011丨卩111:_09相异之故而为不同地遮蔽。
[0160]从而,将能了解到,根据本
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1