CN108182723B - 星空模拟方法和星空模拟装置 - Google Patents
星空模拟方法和星空模拟装置 Download PDFInfo
- Publication number
- CN108182723B CN108182723B CN201711275629.7A CN201711275629A CN108182723B CN 108182723 B CN108182723 B CN 108182723B CN 201711275629 A CN201711275629 A CN 201711275629A CN 108182723 B CN108182723 B CN 108182723B
- Authority
- CN
- China
- Prior art keywords
- vertex
- color
- coordinate value
- value
- starry sky
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/90—Determination of colour characteristics
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
Abstract
本发明提供的星空模拟方法和星空模拟装置,涉及场景模拟技术领域。其中,星空模拟方法包括:在构造的模型形体上,从预设的多个顶点中指定至少一个顶点;针对指定的每一个顶点,获取该顶点的位置坐标值和颜色透明度;根据所述位置坐标值和颜色透明度对该顶点进行渲染处理,以完成星空的模拟。通过上述方法,可以改善现有技术中采用星空纹理图以模拟星空而存在模拟效果差的问题。
Description
技术领域
本发明涉及场景模拟技术领域,具体而言,涉及一种星空模拟方法和星空模拟装置。
背景技术
在如今的三维游戏中,为了呈现具有真实性的自然环境,需要在夜晚模拟星空环境。其中,星空中星星的模拟效果直接关系着三维游戏的逼真程度,影响着用户的体验度。经发明人研究发现,现有星空模拟技术中因采用星空纹理图而存在模拟效果差的问题。
发明内容
有鉴于此,本发明的目的在于提供一种星空模拟方法和星空模拟装置,以改善现有技术中采用星空纹理图以模拟星空而存在模拟效果差的问题。
为实现上述目的,本发明实施例采用如下技术方案:
一种星空模拟方法,包括:
在构造的模型形体上,从预设的多个顶点中指定至少一个顶点;
针对指定的每一个顶点,获取该顶点的位置坐标值和颜色透明度;
根据所述位置坐标值和颜色透明度对该顶点进行渲染处理,以完成星空的模拟。
在本发明实施例较佳的选择中,在上述星空模拟方法中,所述模型形体为半球状且外表面包括平面和曲面,其中,所述顶点位于所述曲面,获取该顶点的位置坐标值可以通过以下步骤实现:
获取该顶点和模型形体的球心的连线与所述平面的第一夹角、与所述平面垂直的预设平面的第二夹角;
根据所述第一夹角、第二夹角及模型形体的半径计算得到该顶点的位置坐标值。
在本发明实施例较佳的选择中,在上述星空模拟方法中,在构造的模型形体上,从预设的多个顶点中指定至少一个顶点的步骤包括:
在构造的模型形体上,从预设的多个顶点中指定至少一个在所述曲面的预设范围内的顶点,以使该顶点对应的第一夹角大于预设角度。
在本发明实施例较佳的选择中,在上述星空模拟方法中,,根据所述位置坐标值和颜色透明度对该顶点进行渲染处理的步骤包括:
通过顶点着色器对所述位置坐标值和颜色透明度进行转换处理;
通过光栅器对经过转换处理的所述位置坐标值和颜色透明度进行插值处理;
通过片元着色器根据经过插值处理的所述位置坐标值和颜色透明度计算该顶点的最终颜色值;
根据所述最终颜色值对该顶点的颜色进行调整,以完成对该顶点的渲染。
在本发明实施例较佳的选择中,在上述星空模拟方法中,所述位置坐标值包括基准坐标值,通过顶点着色器对所述位置坐标值和颜色透明度进行转换处理的步骤包括:
将该顶点的基准坐标值依次通过视见转换矩阵和投影转换矩阵进行转换,以得到裁剪坐标值;
根据生成的初始颜色值和闪烁量计算得到该顶点的中间颜色值,其中,所述初始颜色值根据所述颜色透明度生成,所述闪烁量按照预设规则生成以标识不同时间计算得到的中间颜色值。
在本发明实施例较佳的选择中,在上述星空模拟方法中,所述位置坐标值还包括偏移量,每一个顶点由多个位置点构成,其中,属于同一顶点的各位置点具有相同的基准坐标值、相同的颜色透明度和不同的偏移量,以使该各位置点基于不同的位置构成多变形,通过片元着色器根据经过插值处理的所述位置坐标值和颜色透明度计算该顶点的最终颜色值的步骤包括:
针对同一顶点的每一个位置点,根据该顶点经过插值后的偏移量计算得到曝光比例;
根据所述曝光比例和经过插值后的中间颜色值计算得到该位置点的最终颜色值。
在上述基础上,本发明实施例还提供了一种星空模拟装置,包括:
顶点指定模块,用于在构造的模型形体上,从预设的多个顶点中指定至少一个顶点;
参数获取模块,用于针对指定的每一个顶点,获取该顶点的位置坐标值和颜色透明度;
顶点渲染模块,用于根据所述位置坐标值和颜色透明度对该顶点进行渲染处理,以完成星空的模拟。
在本发明实施例较佳的选择中,在上述星空模拟装置中,所述模型形体为半球状且外表面包括平面和曲面,其中,所述顶点位于所述曲面,所述参数获取模块包括:
夹角获取子模块,用于获取该顶点和模型形体的球心的连线与所述平面的第一夹角、与所述平面垂直的预设平面的第二夹角;
坐标值获取子模块,用于根据所述第一夹角、第二夹角及模型形体的半径计算得到该顶点的位置坐标值。
在本发明实施例较佳的选择中,在上述星空模拟装置中,所述顶点渲染模块包括:
转换处理子模块,用于通过顶点着色器对所述位置坐标值和颜色透明度进行转换处理;
插值处理子模块,用于通过光栅器对经过转换处理的所述位置坐标值和颜色透明度进行插值处理;
颜色值计算子模块,用于通过片元着色器根据经过插值处理的所述位置坐标值和颜色透明度计算该顶点的最终颜色值;
颜色调整子模块,用于根据所述最终颜色值对该顶点的颜色进行调整,以完成对该顶点的渲染。
在本发明实施例较佳的选择中,在上述星空模拟装置中,所述位置坐标值包括基准坐标值,所述转换处理模块子包括:
坐标值获取单元,用于将该顶点的基准坐标值依次通过视见转换矩阵和投影转换矩阵进行转换,以得到裁剪坐标值;
颜色值获取单元,用于根据生成的初始颜色值和闪烁量计算得到该顶点的中间颜色值,其中,所述初始颜色值根据所述颜色透明度生成,所述闪烁量按照预设规则生成以标识不同时间计算得到的中间颜色值。
本发明提供的星空模拟方法和星空模拟装置,通过在模型形体上从预设的多个顶点中指定至少一个顶点并进行渲染处理,以完成星空的模拟,可以对模拟出的星星的数量和位置进行控制,从而改善现有技术中采用星空纹理图以模拟星空而存在模拟效果差的问题,极大地提高了星空模拟方法和星空模拟装置的实用性和可靠性。
进一步地,通过在顶点着色器中进行转换处理时,生成闪烁量并根据该闪烁量计算得到顶点的颜色值,可以实现顶点颜色的控制,从而模拟出动态的星星,解决了现有技术中因采用星空纹理图而导致模拟出的星空是静态的问题,进而提高了星空的真实性,有效地提高了星空模拟方法和星空模拟装置的实用性和可靠性。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
图1为本发明实施例提供的终端设备的结构框图。
图2为本发明实施例提供的星空模拟方法的流程示意图。
图3为图2中步骤S130的流程示意图。
图4为图2中步骤S150的流程示意图。
图5为图4中步骤S151的流程示意图。
图6为图4中步骤S155的流程示意图。
图7为本发明实施例提供的星空模拟装置的结构框图。
图8为本发明实施例提供的参数获取模块的结构框图。
图9为本发明实施例提供的顶点渲染模块的结构框图。
图10为本发明实施例提供的转换处理子模块的结构框图。
图标:10-终端设备;12-存储器;14-处理器;100-星空模拟装置;110-顶点指定模块;130-参数获取模块;131-夹角获取子模块;133-坐标值获取子模块;150-顶点渲染模块;151-转换处理子模块;151a-坐标值获取单元;151b-颜色值获取单元;153-插值处理子模块;155-颜色值计算子模块;157-颜色调整子模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,本发明实施例提供了一种终端设备10,包括存储器12、处理器14和星空模拟装置100。
其中,所述终端设备10可以包括,但不限于是智能手机、个人电脑(personalcomputer,PC)、平板电脑、个人数字助理(personal digital assistant,PDA)、移动上网设备(mobile Internet device,MID)等。
进一步地,在本实施实例中,所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述星空模拟装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行模块,例如所述星空模拟装置100所包括的软件功能模块及计算机程序等,以实现星空模拟方法。
其中,所述存储器12可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器12用于存储程序,所述处理器14在接收到执行指令后,执行所述程序。
所述处理器14可能是一种集成电路芯片,具有信号的处理能力。上述的处理器14可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解,图1所示的结构仅为示意,所述终端设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置,例如,还可以包括用于与服务器进行数据交互的通信单元。图1中所示的各组件可以采用硬件、软件或其组合实现。
结合图2,本发明实施例还提供一种可应用于上述终端设备10的星空模拟方法,所述方法有关的流程所定义的方法步骤可以由所述处理器14实现。下面将对图2所示的具体流程进行详细阐述。
步骤S110,在构造的模型形体上,从预设的多个顶点中指定至少一个顶点。
在本实施例中,可以根据需要模拟的星空的形状大小等信息构造一模型形体,并在所述模型形体上预先设置多个顶点,以便于执行步骤S110时,可以从所述多个顶点中指定至少一个顶点以模拟星星。
可选地,在所述模型形体上预设多个顶点的方式不受限制,根据实际需求进行设置即可,例如,可以根据所述模型形体的形状、大小以及模拟出的各星星的位置关系进行设置。在本实施例中,所述模型形体可以为半球状,且外表面包括平面和曲面。其中,预设的多个顶点位于所述曲面。例如,所述模型形体的半径可以为1,可以将所述模型形体在所述平面上划分为相等的360份,在与所述平面垂直的一预设平面上划分为90份,由此可以得到360*90个顶点。
步骤S130,针对指定的每一个顶点,获取该顶点的位置坐标值和颜色透明度。
在本实施例中,可以针对每一个顶点,获取该顶点的位置坐标值和颜色透明度alpha,以得到指定的每一顶点的参数,即模拟的星空中各星星的参数。其中,所述颜色透明度alpha的大小不受限制,考虑到实际显示过程中的显示效果,可以在(70/255,1)的范围内为每一个顶点指定一颜色透明度alpha。
可选地,获取顶点的位置坐标值的方式不受限制,根据实际需求进行设置即可,例如,可以根据所述模型形体的形状和顶点的设置方式进行设置。在本实施例中,结合图3,可以通过步骤S131和步骤S133,以获取顶点的坐标值。
步骤S131,获取该顶点和模型形体的球心的连线与所述平面的第一夹角、与所述平面垂直的预设平面的第二夹角。
步骤S133,根据所述第一夹角、第二夹角及模型形体的半径计算得到该顶点的位置坐标值。
在本实施例中,可以通过以下公式计算得到顶点的位置坐标值:
float h=cos(β);
float r=sin(β);
pos.x=cos(α)×r;
pos.y=h;
pos.z=sin(α)×r。
其中,所述模型形体的半球为1,β为第一夹角,α为第二夹角,pos(x,y,z)为位置坐标值。
进一步,考虑到所述第一夹角的大小会影响到模拟出星星的高度值,进而影响星星的模拟效果,可以从预设的多个顶点中指定至少一个在所述曲面的预设范围内的顶点,以使该顶点对应的第一夹角大于预设角度。在本实施例中,所述第一夹角的取值范围可以是(10°,90°)。
步骤S150,根据所述位置坐标值和颜色透明度对该顶点进行渲染处理,以完成星空的模拟。
在本实施例中,分别对每一个顶点进行渲染处理,以模拟出每一个星星,进而完成星空的模拟。结合图4,在本实施例中,可以通过步骤S151、步骤S153、步骤S155和步骤S157对顶点进行模拟。
步骤S151,通过顶点着色器对所述位置坐标值和颜色透明度进行转换处理。
在本实施例中,通过所述顶点着色器对所述位置坐标值和颜色透明度进行转换处理的方式不受限制,根据实际需求进行设置即可。考虑到需要将顶点从模型空间转换至裁剪空间并对顶点的颜色进行调整,在本实施例中,所述位置坐标值可以包括基准坐标值,结合图5,可以通过步骤S151a和步骤S151b进行转换处理。
步骤S151a,将该顶点的基准坐标值依次通过视见转换矩阵和投影转换矩阵进行转换,以得到裁剪坐标值。
在本实施例中,可以通过以下公式对所述基准坐标值进行计算以得到裁剪坐标值:
pos2.xyzw=dot(ViewMatrix,pos1);
pos2.w=1.0;
pos2.xy=pos2.xy+(offset.xy-0.5)*starSize;
clipPos.xyzw=dot(ProjectMatrix,pos2);
clipPos.z=clipPos.w。
其中,pos1根据位置坐标值进行四元转换得到,即将pos(x,y,z)转换为pos1(x,y,z,0.0)。ViewMatrix为预设的视见转换矩阵,starSize为预设的星星大小参数。将通过偏移后到的pos2(x,y,z,1.0)与投影转换矩阵ProjectMatrix相点乘,得到裁剪空间中的位置坐标clipPos(x,y,z,w),并修改clipPos.z值。
步骤S151b,根据生成的初始颜色值和闪烁量计算得到该顶点的中间颜色值。
在本实施例中,所述初始颜色值根据所述颜色透明度生成,所述闪烁量按照预设规则生成以标识不同时间计算得到的中间颜色值。其中,所述初始颜色值包括的r通道值、g通道值和b通道值根据预设为白色的顶点的颜色生成。其中,计算所述中间颜色值的公式可以是:
float value=2.5+color.alpha×(-1.44-2.5);
float blink=flickerAmount×pow(5.0,(-value-1.44)÷2.5);
outColor.rgb=blink×color.rgb;
outColor.alpha=blink。
其中,alpha为颜色透明度,color(r,g,b,alpha)为初始颜色值,outColor(r,g,b,alpha)为中间颜色值,flickerAmount为闪烁量。
步骤S153,通过光栅器对经过转换处理的所述位置坐标值和颜色透明度进行插值处理。
在本实施例中,考虑到若由单个点以模拟星星,存在模拟效果差的问题,可以将所述顶点扩展为多边形,即所述顶点可以由多个位置点构成。其中,根据需要模拟出的星星的形状不同,可以设置的位置点的数量可以不同。例如,在需要用四边形模拟星星时,每个顶点可以包括4个位置点。
可选地,将顶点扩展为多边形的方式不受限制,根据实际需求进行设置即可。在本实施例中,可以根据顶点的基准坐标值,分别生成多个偏移量,以得到多个位置点。其中,属于同一顶点的各位置点具有相同的基准坐标值、相同的颜色透明度和不同的偏移量,以使该各位置点基于不同的位置构成多变形。因此,在本实施例中,针对每一个顶点,需要将该顶点的每一个位置点的裁剪坐标值、偏移量以及中间颜色值进行插值处理。
步骤S155,通过片元着色器根据经过插值处理的所述位置坐标值和颜色透明度计算该顶点的最终颜色值。
在本实施例中,片元着色器可以根据经过插值后的偏移量和中间颜色值计算得到顶点中的每一个位置点的最终颜色。结合图6,步骤S155可以包括步骤S155a和步骤S155b,。
步骤S155a,针对同一顶点的每一个位置点,根据该顶点经过插值后的偏移量计算得到曝光比例。
在本实施例中,计算所述曝光比例的方式可以是:
float distCenter=3.5×offset2.xy-3.5×float2(0.5,0.5);
float scale=exp(-dot(distCenter,disCenter))。
其中,offset2(x,y)为经过插值处理后的偏移量,scale为曝光比例。
步骤S155b,根据所述曝光比例和经过插值后的中间颜色值计算得到该位置点的最终颜色值。
在本实施例中,计算所述最终颜色值的方式可以是:
float3 colHot=float3(outColor2.alpha,outColor2.alpha,outColor2.alpha);
fragColor=StarIntensity×(outColor2.rgb×scale+5×colHot×pow(scale,10))。
其中,fragColor为最终颜色值,StarIntensity为预设的星空可见度参数。
步骤S157,根据所述最终颜色值对该顶点的颜色进行调整,以完成对该顶点的渲染。
在本实施中,可以根据各顶点在裁剪空间的裁剪坐标值并结合对应的包括的各个位置点的最终颜色值,对该顶点进行颜色的调整,以完成对星空的渲染。
结合图7,本发明实施例还提供一种可应用于上述终端设备10的星空模拟装置100。其中,所述星空模拟装置100包括顶点指定模块110、参数获取模块130和顶点渲染模块150。
所述顶点指定模块110,用于在构造的模型形体上,从预设的多个顶点中指定至少一个顶点。在本实施例中,所述顶点指定模块110可用于执行图2所示的步骤S110,关于所述顶点指定模块110的具体描述可以参照前文对步骤S110的描述。
所述参数获取模块130,用于针对指定的每一个顶点,获取该顶点的位置坐标值和颜色透明度。在本实施例中,所述参数获取模块130可用于执行图2所示的步骤S130,关于所述参数获取模块130的具体描述可以参照前文对步骤S130的描述。
所述顶点渲染模块150,用于根据所述位置坐标值和颜色透明度对该顶点进行渲染处理,以完成星空的模拟。在本实施例中,所述顶点渲染模块150可用于执行图2所示的步骤S150,关于所述顶点渲染模块150的具体描述可以参照前文对步骤S150的描述。
结合图8,在本实施例中,所述模型形体为半球状且外表面包括平面和曲面,其中,所述顶点位于所述曲面,所述参数获取模块130可以包括夹角获取子模块131和坐标值获取子模块133。
所述夹角获取子模块131,用于获取该顶点和模型形体的球心的连线与所述平面的第一夹角、与所述平面垂直的预设平面的第二夹角。在本实施例中,所述夹角获取子模块131可用于执行图3所示的步骤S131,关于所述夹角获取子模块131的具体描述可以参照前文对步骤S131的描述。
所述坐标值获取子模块133,用于根据所述第一夹角、第二夹角及模型形体的半径计算得到该顶点的位置坐标值。在本实施例中,所述坐标值获取子模块133可用于执行图3所示的步骤S133,关于所述坐标值获取子模块133的具体描述可以参照前文对步骤S133的描述。
结合图9,在本实施例中,所述顶点渲染模块150可以包括转换处理子模块151、插值处理子模块153、颜色值计算子模块155和颜色调整子模块157。
所述转换处理子模块151,用于通过顶点着色器对所述位置坐标值和颜色透明度进行转换处理。在本实施例中,所述转换处理子模块151可用于执行图4所示的步骤S151,关于所述转换处理子模块151的具体描述可以参照前文对步骤S151的描述。
所述插值处理子模块153,用于通过光栅器对经过转换处理的所述位置坐标值和颜色透明度进行插值处理。在本实施例中,所述插值处理子模块153可用于执行图4所示的步骤S153,关于所述插值处理子模块153的具体描述可以参照前文对步骤S153的描述。
所述颜色值计算子模块155,用于通过片元着色器根据经过插值处理的所述位置坐标值和颜色透明度计算该顶点的最终颜色值。在本实施例中,所述颜色值计算子模块155可用于执行图4所示的步骤S155,关于所述颜色值计算子模块155的具体描述可以参照前文对步骤S155的描述。
所述颜色调整子模块157,用于根据所述最终颜色值对该顶点的颜色进行调整,以完成对该顶点的渲染。在本实施例中,所述颜色调整子模块157可用于执行图4所示的步骤S157,关于所述颜色调整子模块157的具体描述可以参照前文对步骤S157的描述。
结合图10,在本实施例中,所述位置坐标值包括基准坐标值,所属转换处理子模块151可以包括坐标值获取单元151a和颜色值获取单元151b。
所述坐标值获取单元151a,用于将该顶点的基准坐标值依次通过视见转换矩阵和投影转换矩阵进行转换,以得到裁剪坐标值。在本实施例中,所述坐标值获取单元151a可用于执行图5所示的步骤S151a,关于所述坐标值获取单元151a的具体描述可以参照前文对步骤S151a的描述。
所述颜色值获取单元151b,用于根据生成的初始颜色值和闪烁量计算得到该顶点的中间颜色值,其中,所述初始颜色值根据所述颜色透明度生成,所述闪烁量按照预设规则生成以标识不同时间计算得到的中间颜色值。在本实施例中,所述颜色值获取单元151b可用于执行图5所示的步骤S151b,关于所述颜色值获取单元151b的具体描述可以参照前文对步骤S151b的描述。
综上所述,本发明提供的星空模拟方法和星空模拟装置100,通过在模型形体上从预设的多个顶点中指定至少一个顶点并进行渲染处理,以完成星空的模拟,可以对模拟出的星星的数量和位置进行控制,从而改善现有技术中采用星空纹理图以模拟星空而存在模拟效果差的问题,极大地提高了星空模拟方法和星空模拟装置100的实用性和可靠性。其次,通过在顶点着色器中进行转换处理时,生成闪烁量并根据该闪烁量计算得到顶点的颜色值,可以实现顶点颜色的控制,从而模拟出动态的星星,解决了现有技术中因采用星空纹理图而导致模拟出的星空是静态的问题,进而提高了星空的真实性,进一步地提高了星空模拟方法和星空模拟装置100的实用性和可靠性。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种星空模拟方法,其特征在于,所述方法包括:
在构造的模型形体上,从预设的多个顶点中指定至少一个顶点;
针对指定的每一个顶点,获取该顶点的位置坐标值和颜色透明度;
根据所述位置坐标值和颜色透明度对该顶点进行渲染处理,以完成星空的模拟;
其中,所述根据所述位置坐标值和颜色透明度对该顶点进行渲染处理,以完成星空的模拟的步骤,包括:
通过顶点着色器对所述位置坐标值和颜色透明度进行转换处理;
通过光栅器对经过转换处理的所述位置坐标值和颜色透明度进行插值处理;
通过片元着色器根据经过插值处理的所述位置坐标值和颜色透明度计算该顶点的最终颜色值;
根据所述最终颜色值对该顶点的颜色进行调整,以完成对该顶点的渲染;
其中,所述位置坐标值包括基准坐标值,通过顶点着色器对所述位置坐标值和颜色透明度进行转换处理的步骤包括:
将该顶点的基准坐标值依次通过视见转换矩阵和投影转换矩阵进行转换,以得到裁剪坐标值;
根据生成的初始颜色值和闪烁量计算得到该顶点的中间颜色值,其中,所述初始颜色值根据所述颜色透明度生成,所述闪烁量按照预设规则生成以标识不同时间计算得到的中间颜色值。
2.根据权利要求1所述的星空模拟方法,其特征在于,所述模型形体为半球状且外表面包括平面和曲面,其中,所述顶点位于所述曲面,获取该顶点的位置坐标值可以通过以下步骤实现:
获取该顶点和模型形体的球心的连线与所述平面的第一夹角、与所述平面垂直的预设平面的第二夹角;
根据所述第一夹角、第二夹角及模型形体的半径计算得到该顶点的位置坐标值。
3.根据权利要求2所述的星空模拟方法,其特征在于,在构造的模型形体上,从预设的多个顶点中指定至少一个顶点的步骤包括:
在构造的模型形体上,从预设的多个顶点中指定至少一个在所述曲面的预设范围内的顶点,以使该顶点对应的第一夹角大于预设角度。
4.根据权利要求1所述的星空模拟方法,其特征在于,所述位置坐标值还包括偏移量,每一个顶点由多个位置点构成,其中,属于同一顶点的各位置点具有相同的基准坐标值、相同的颜色透明度和不同的偏移量,以使该各位置点基于不同的位置构成多变形,通过片元着色器根据经过插值处理的所述位置坐标值和颜色透明度计算该顶点的最终颜色值的步骤包括:
针对同一顶点的每一个位置点,根据该顶点经过插值后的偏移量计算得到曝光比例;
根据所述曝光比例和经过插值后的中间颜色值计算得到该位置点的最终颜色值。
5.一种星空模拟装置,应用于播放装置,其特征在于,所述装置包括:
顶点指定模块,用于在构造的模型形体上,从预设的多个顶点中指定至少一个顶点;
参数获取模块,用于针对指定的每一个顶点,获取该顶点的位置坐标值和颜色透明度;
顶点渲染模块,用于根据所述位置坐标值和颜色透明度对该顶点进行渲染处理,以完成星空的模拟;
其中,所述顶点渲染模块包括:
转换处理子模块,用于通过顶点着色器对所述位置坐标值和颜色透明度进行转换处理;
插值处理子模块,用于通过光栅器对经过转换处理的所述位置坐标值和颜色透明度进行插值处理;
颜色值计算子模块,用于通过片元着色器根据经过插值处理的所述位置坐标值和颜色透明度计算该顶点的最终颜色值;
颜色调整子模块,用于根据所述最终颜色值对该顶点的颜色进行调整,以完成对该顶点的渲染;
其中,所述位置坐标值包括基准坐标值,所述转换处理子模块包括:
坐标值获取单元,用于将该顶点的基准坐标值依次通过视见转换矩阵和投影转换矩阵进行转换,以得到裁剪坐标值;
颜色值获取单元,用于根据生成的初始颜色值和闪烁量计算得到该顶点的中间颜色值,其中,所述初始颜色值根据所述颜色透明度生成,所述闪烁量按照预设规则生成以标识不同时间计算得到的中间颜色值。
6.根据权利要求5所述的星空模拟装置,其特征在于,所述模型形体为半球状且外表面包括平面和曲面,其中,所述顶点位于所述曲面,所述参数获取模块包括:
夹角获取子模块,用于获取该顶点和模型形体的球心的连线与所述平面的第一夹角、与所述平面垂直的预设平面的第二夹角;
坐标值获取子模块,用于根据所述第一夹角、第二夹角及模型形体的半径计算得到该顶点的位置坐标值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711275629.7A CN108182723B (zh) | 2017-12-06 | 2017-12-06 | 星空模拟方法和星空模拟装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711275629.7A CN108182723B (zh) | 2017-12-06 | 2017-12-06 | 星空模拟方法和星空模拟装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108182723A CN108182723A (zh) | 2018-06-19 |
CN108182723B true CN108182723B (zh) | 2021-10-26 |
Family
ID=62545684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711275629.7A Active CN108182723B (zh) | 2017-12-06 | 2017-12-06 | 星空模拟方法和星空模拟装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108182723B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109529333A (zh) * | 2018-11-21 | 2019-03-29 | 北京像素软件科技股份有限公司 | 镜头光晕模拟方法、镜头光晕模拟装置及终端设备 |
CN109729417B (zh) * | 2019-03-28 | 2019-09-10 | 深圳市酷开网络科技有限公司 | 一种视频透明播放处理方法、智能电视及存储介质 |
CN111665630A (zh) * | 2020-06-21 | 2020-09-15 | 谢海鸿 | 一种虚拟天文馆 |
CN111882636A (zh) * | 2020-07-24 | 2020-11-03 | 上海米哈游天命科技有限公司 | 一种画面渲染方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103679780A (zh) * | 2013-08-22 | 2014-03-26 | 中国人民解放军信息工程大学 | 一种空间目标实时模拟方法 |
CN104966312A (zh) * | 2014-06-10 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种3d模型的渲染方法、装置及终端设备 |
CN106355634A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 模拟太阳的方法及装置 |
CN106887033A (zh) * | 2017-01-20 | 2017-06-23 | 腾讯科技(深圳)有限公司 | 场景的渲染方法和装置 |
CN107358643A (zh) * | 2017-07-04 | 2017-11-17 | 网易(杭州)网络有限公司 | 图像处理方法、装置、电子设备及存储介质 |
-
2017
- 2017-12-06 CN CN201711275629.7A patent/CN108182723B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103679780A (zh) * | 2013-08-22 | 2014-03-26 | 中国人民解放军信息工程大学 | 一种空间目标实时模拟方法 |
CN104966312A (zh) * | 2014-06-10 | 2015-10-07 | 腾讯科技(深圳)有限公司 | 一种3d模型的渲染方法、装置及终端设备 |
CN106355634A (zh) * | 2016-08-30 | 2017-01-25 | 北京像素软件科技股份有限公司 | 模拟太阳的方法及装置 |
CN106887033A (zh) * | 2017-01-20 | 2017-06-23 | 腾讯科技(深圳)有限公司 | 场景的渲染方法和装置 |
CN107358643A (zh) * | 2017-07-04 | 2017-11-17 | 网易(杭州)网络有限公司 | 图像处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108182723A (zh) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182723B (zh) | 星空模拟方法和星空模拟装置 | |
TWI578266B (zh) | 藉由近似頂點至彎曲視埠上的投影在圖形處理中隨螢幕位置變化有效解析度 | |
US9177351B2 (en) | Multi-primitive graphics rendering pipeline | |
CN108022285B (zh) | 地图渲染方法及装置 | |
US8368714B2 (en) | Curved surface rendering system and method | |
CN106898040B (zh) | 虚拟资源对象渲染方法和装置 | |
EP3044763A1 (en) | Techniques to manage map information illustrating a transition between views | |
US10096152B2 (en) | Generating data for use in image based lighting rendering | |
Chao et al. | Parallel algorithm for viewshed analysis on a modern GPU | |
CN111915712B (zh) | 光照渲染方法、装置、计算机可读介质及电子设备 | |
CN108882025B (zh) | 视频帧处理方法和装置 | |
US20150332481A1 (en) | Indexed uniform styles for stroke rendering | |
AU2018253460A1 (en) | Framework for local parameterization of 3d meshes | |
KR101359011B1 (ko) | 지구 환경 3차원 가시화 시스템 | |
CN109979013B (zh) | 三维人脸贴图方法及终端设备 | |
CN108074285B (zh) | 体积云模拟方法和体积云模拟装置 | |
CN111047506A (zh) | 环境图生成和孔填充 | |
US8675013B1 (en) | Rendering spherical space primitives in a cartesian coordinate system | |
US20130141451A1 (en) | Circular scratch shader | |
Jenny et al. | Real-time raster projection for web maps | |
CN108230430B (zh) | 云层遮罩图的处理方法及装置 | |
CN116843811A (zh) | 三维模型渲染方法、装置、设备及存储介质 | |
US20180005432A1 (en) | Shading Using Multiple Texture Maps | |
JP5921753B2 (ja) | 地図描画装置 | |
CN101226643B (zh) | 可依水面实际高度绘制3d水面的装置及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |