Method and device for manufacturing shadow special effect based on fractal noise

文档序号:1847789 发布日期:2021-11-16 浏览:31次 中文

阅读说明:本技术 基于分形噪声的光影特效制作方法和装置 (Method and device for manufacturing shadow special effect based on fractal noise ) 是由 林青山 于 2021-08-17 设计创作,主要内容包括:本发明涉及一种基于分形噪声的光影特效制作方法和装置,该方法包括:基于线条在渲染区域内构造出主体;确定渲染区域内的每个像素点到主体的最短距离;根据最短距离确定对应像素点的发光效果,并根据发光效果在对应像素点处进行辉光渲染;基于分形噪声变换辉光渲染结果的纹理采样坐标,得到多种光影效果;将所有光影效果进行叠加处理,得到光影特效。本发明消耗的计算资源和时间较少,能够适用于移动端。此外,本发明支持灵活编辑光影特效,生成的光影特效具备多样性和差异性,以及具备真实质感。(The invention relates to a method and a device for manufacturing a shadow special effect based on fractal noise, wherein the method comprises the following steps: constructing a main body in the rendering area based on the lines; determining the shortest distance from each pixel point in the rendering area to the main body; determining the luminous effect of the corresponding pixel point according to the shortest distance, and performing glow rendering on the corresponding pixel point according to the luminous effect; transforming texture sampling coordinates of glow rendering results based on fractal noise to obtain various shadow effects; and (4) superposing all the light and shadow effects to obtain the light and shadow special effect. The invention consumes less computing resources and time and can be suitable for the mobile terminal. In addition, the invention supports flexible editing of the shadow special effect, and the generated shadow special effect has diversity and difference and real texture.)

1. A method for manufacturing a shadow special effect based on fractal noise is characterized by comprising the following steps:

constructing a main body in the rendering area based on the lines; the main body is a position where the light and shadow special effect needs to be acted;

determining the shortest distance from each pixel point in the rendering area to the main body;

determining the luminous effect corresponding to the pixel point according to the shortest distance, and performing glow rendering on the pixel point according to the luminous effect;

transforming texture sampling coordinates of glow rendering results based on fractal noise to obtain various shadow effects;

and superposing all the light and shadow effects to obtain the light and shadow special effect.

2. The manufacturing method of the fractal noise-based light and shadow special effect, according to claim 1, is characterized in that the main body is composed of a straight line, a fitting second-order bezier curve and/or a fitting third-order bezier curve; the fitting second-order Bezier curve and the fitting third-order Bezier curve are obtained by fitting a plurality of straight line segments;

after the main body is constructed in the rendering area based on the lines, the method further comprises the following steps:

and acquiring the end point position information of each line segment of the main body, and transmitting the end point position information into OpenGL, so that the OpenGL realizes the method steps after the main body is constructed in a rendering area based on lines according to the end point position information of each line segment.

3. The method for making a special effect of shadow based on fractal noise according to claim 1, further comprising: storing the shortest distance to a texture;

the shortest distance is stored as vec2 type data.

4. The method for making a fractal noise based light and shadow special effect according to claim 3, wherein before determining the shortest distance from each pixel point in the rendering region to the subject, the method further comprises: reducing the resolution of the texture to 240P;

after determining the shortest distance from each pixel point in the rendering region to the main body, the method further includes: the resolution of the texture is scaled up to the original resolution.

5. The method for manufacturing a special shadow effect based on fractal noise according to claim 1, wherein a calculation formula of the glow rendering is as follows:

color=vec4(mix(dColor.rgb,sColor.rgb,pow(f,e1)),mix(0.0,sColor.a,pow(f,e2)))

wherein color represents the glow rendering result; dColor stands for glow color; sColor represents the subject color; f represents the interpolation proportion, and f is more than or equal to 0 and less than or equal to 1; mix represents a linear interpolation function; pow represents an exponential function, the first parameter is a base number, the second parameter is an exponent, and e1 and e2 are exponential parameters of the pow function; rgb represents the red, blue, green component of the color; a represents a transparency component of a color;

wherein the calculation formula of f is as follows:

f=calcInterpolation(r,diffusion,bias)

wherein r represents the shortest distance; dispersion represents a diffusion factor; bias represents the bias factor.

6. The method for making a special effect of shadow based on fractal noise according to claim 1, wherein the function of the fractal noise is a continuous function;

the texture sampling coordinate based on the fractal noise transformation glow rendering result obtains various shadow effects, including:

shifting the texture sampling coordinate according to the following calculation formula; the offset results of all the texture sampling coordinates are the same; the offset result is proportional to the current time;

offset'=rot*time*speed

wherein offset' represents the offset result; rot denotes a rotation transformation matrix; time represents the current time; speed represents the motion speed of the shadow;

generating a fractal noise function by taking the texture sampling coordinate as an independent variable and taking the offset result as a dependent variable;

adding a vector parameter which continuously changes along with time in the fractal noise function according to the following calculation formula;

wherein fbm represents a fractal noise function; st' represents texture sample coordinates after pre-shifting; offB represents a vector parameter for enhancing the expressive force of the light and shadow flow effect; phase represents a phase parameter; frequency represents frequency; amplitude represents amplitude; transfmat represents a linear transformation matrix; perlinNoise represents the berlin noise function;

calculating the final texture sample coordinates according to the following calculation formula:

pos=st+fbm(st+offset'*a,offset'*b)

wherein pos represents the final texture sample coordinates; st represents the original texture sampling coordinates; a and b are respectively preset constants; fbm represents a fractal noise function;

sampling the texture at the final texture sampling coordinate, and rendering the sampling result to the original texture sampling coordinate to obtain a shadow effect;

and repeatedly executing the steps, and changing the internal parameters of the fractal noise function in the repeated execution process to obtain various shadow effects.

7. The method for making a special effect of shadow based on fractal noise according to claim 6, wherein the changing the internal parameters of the fractal noise function comprises:

adding linear transformation operations and/or modifying target parameters in the transMat; the target parameters include frequency, amplitude and phase; the linear transformation operations include at least translation, scaling, rotation, and tangent.

8. The method for making a special shadow effect based on fractal noise according to claim 6, wherein the superimposing all the shadow effects includes:

superposing all the light and shadow effects through a mixed mode; the hybrid mode is color filtering.

9. A device for manufacturing a shadow special effect based on fractal noise is characterized by comprising:

the construction main body module is used for constructing a main body in the rendering area based on the lines; the main body is a place where the light and shadow special effect needs to be acted;

a shortest distance calculating module for determining the shortest distance from each pixel point in the rendering region to the main body;

the glow rendering module is used for determining the luminous effect corresponding to the pixel point according to the shortest distance and performing glow rendering on the pixel point according to the luminous effect;

the shadow effect determining module is used for transforming texture sampling coordinates of glow rendering results based on fractal noise to obtain various shadow effects;

and the superposition module is used for carrying out superposition processing on all the light and shadow effects to obtain the light and shadow special effect.

Technical Field

The invention relates to the technical field of video production, in particular to a method and a device for producing a special shadow effect based on fractal noise.

Background

The special effect of light and shadow is often appeared in film and television works such as movies and the like, and brings good visual experience to people. Currently, the light and shadow effect in movie and television works is generally realized by using a particle system and a physical rendering method. The special effect of light and shadow made by the method is full, various and very realistic, and can bring sufficient visual impact. However, the method for making the special effect of light and shadow has the disadvantage of consuming computing resources and time, and is not suitable for a mobile terminal.

Disclosure of Invention

In view of this, a method and an apparatus for making a special shadow effect based on fractal noise are provided to solve the problem that the making method of the special shadow effect in the related art consumes computing resources and time, and is not suitable for a mobile terminal.

The invention adopts the following technical scheme:

in a first aspect, the present invention provides a method for manufacturing a shadow special effect based on fractal noise, including:

constructing a main body in the rendering area based on the lines; the main body is a position where the light and shadow special effect needs to be acted;

determining the shortest distance from each pixel point in the rendering area to the main body;

determining the luminous effect corresponding to the pixel point according to the shortest distance, and performing glow rendering on the pixel point according to the luminous effect;

transforming texture sampling coordinates of glow rendering results based on fractal noise to obtain various shadow effects;

and superposing all the light and shadow effects to obtain the light and shadow special effect.

Preferably, the main body is composed of a straight line, a fitted second order bezier curve and/or a fitted third order bezier curve; the fitting second-order Bezier curve and the fitting third-order Bezier curve are obtained by fitting a plurality of straight line segments;

after the main body is constructed in the rendering area based on the lines, the method for manufacturing the special shadow effect based on the fractal noise further includes:

and acquiring the end point position information of each line segment of the main body, and transmitting the end point position information into OpenGL, so that the OpenGL realizes the method steps after the main body is constructed in a rendering area based on lines according to the end point position information of each line segment.

Preferably, the method for manufacturing a special shadow effect based on fractal noise of this embodiment further includes: storing the shortest distance to a texture;

the shortest distance is stored as vec2 type data.

Preferably, before determining the shortest distance from each pixel point in the rendering region to the main body, the method for manufacturing a special effect of lighting based on fractal noise of this embodiment further includes: reducing the resolution of the texture to 240P;

after determining the shortest distance from each pixel point in the rendering region to the main body, the method further includes: the resolution of the texture is scaled up to the original resolution.

Preferably, the calculation formula of the glow rendering is as follows:

color

=vec4(mix(dColor.rgb,sColor.rgb,pow(f,e1)),mix(0.0,sColor.a,pow(f,e2)))

wherein color represents the glow rendering result; dColor stands for glow color; sColor represents the subject color; f represents the interpolation proportion, and f is more than or equal to 0 and less than or equal to 1; mix represents a linear interpolation function; pow represents an exponential function, the first parameter is a base number, the second parameter is an exponent, and e1 and e2 are exponential parameters of the pow function; rgb represents the red, blue, green component of a color, a represents the transparency component of a color;

wherein the calculation formula of f is as follows:

f=calcInterpolation(r,diffusion,bias)

wherein r represents the shortest distance; dispersion represents a diffusion factor; bias represents the bias factor.

Preferably, the function of the fractal noise is a continuous function;

the texture sampling coordinate based on the fractal noise transformation glow rendering result obtains various shadow effects, including:

shifting the texture sampling coordinate according to the following calculation formula; the offset results of all the texture sampling coordinates are the same; the offset result is proportional to the current time;

offset'=rot*time*speed

wherein offset' represents the offset result; rot denotes a rotation transformation matrix; time represents the current time; speed represents the motion speed of the shadow;

generating a fractal noise function by taking the texture sampling coordinate as an independent variable and taking the offset result as a dependent variable;

adding a vector parameter which continuously changes along with time in the fractal noise function according to the following calculation formula;

wherein fbm represents a fractal noise function; st' represents texture sample coordinates after pre-shifting; offB represents a vector parameter for enhancing the expressive force of the light and shadow flow effect; phase represents a phase parameter; frequency represents frequency; amplitude represents amplitude; transfmat represents a linear transformation matrix; perlinNoise represents the berlin noise function;

calculating the final texture sample coordinates according to the following calculation formula:

pos=st+fbm(st+offset'*a,offset'*b)

wherein pos represents the final texture sample coordinates; st represents the original texture sampling coordinates; a and b are respectively preset constants; fbm represents a fractal noise function;

sampling the texture at the final texture sampling coordinate, and rendering the sampling result to the original texture sampling coordinate to obtain a shadow effect;

and repeatedly executing the steps, and changing the internal parameters of the fractal noise function in the repeated execution process to obtain various shadow effects.

Preferably, the changing the internal parameter of the fractal noise function includes:

adding linear transformation operations and/or modifying target parameters in the transMat; the target parameters include frequency, amplitude and phase; the linear transformation operations include at least translation, scaling, rotation, and tangent.

Preferably, the superimposing processing of all the light and shadow effects includes:

superposing all the light and shadow effects through a mixed mode; the hybrid mode is color filtering.

In a second aspect, the present invention further provides a device for manufacturing a special shadow effect based on fractal noise, including:

the construction main body module is used for constructing a main body in the rendering area based on the lines; the main body is a place where the light and shadow special effect needs to be acted;

a shortest distance calculating module for determining the shortest distance from each pixel point in the rendering region to the main body;

the glow rendering module is used for determining the luminous effect corresponding to the pixel point according to the shortest distance and performing glow rendering on the pixel point according to the luminous effect;

the shadow effect determining module is used for transforming texture sampling coordinates of glow rendering results based on fractal noise to obtain various shadow effects;

and the superposition module is used for carrying out superposition processing on all the light and shadow effects to obtain the light and shadow special effect.

By adopting the technical scheme, the invention provides a fractal noise-based shadow special effect manufacturing method, which comprises the following steps: constructing a main body in the rendering area based on the lines; the main body is a place where the light and shadow special effect needs to be acted; determining the shortest distance from each pixel point in the rendering area to the main body; determining the luminous effect corresponding to the pixel point according to the shortest distance, and performing glow rendering on the pixel point according to the luminous effect; transforming texture sampling coordinates of glow rendering results based on fractal noise to obtain various shadow effects; and superposing all the light and shadow effects to obtain the light and shadow special effect. Based on this, the noise calculation has low requirements on resources and time, so that the method consumes less computing resources and time and can be suitable for the mobile terminal. In addition, the invention supports flexible editing of the shadow special effect, and the generated shadow special effect has diversity and difference and real texture.

Drawings

In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.

Fig. 1 is a schematic flow chart of a method for manufacturing a special shadow effect based on fractal noise according to an embodiment of the present invention.

Fig. 2 is a light and shadow effect diagram according to an embodiment of the present invention.

Fig. 3 is another light and shadow effect diagram according to an embodiment of the present invention.

Fig. 4 is another light and shadow effect diagram according to an embodiment of the present invention.

Fig. 5 is another light and shadow effect diagram according to an embodiment of the invention.

Fig. 6 is a schematic structural diagram of a device for manufacturing a special shadow effect based on fractal noise according to an embodiment of the present invention.

Detailed Description

In order to make the objects, technical solutions and advantages of the present invention more apparent, the technical solutions of the present invention will be described in detail below. It is to be understood that the described embodiments are merely exemplary of the invention, and not restrictive of the full scope of the invention. All other embodiments, which can be derived by a person skilled in the art from the examples given herein without any inventive step, are within the scope of the present invention.

Fig. 1 is a schematic flow chart of a method for manufacturing a special shadow effect based on fractal noise according to an embodiment of the present invention. As shown in fig. 1, the method for manufacturing a special effect of shadow based on fractal noise of this embodiment includes:

s101, constructing a main body in a rendering area based on lines; the main body is a place where the light and shadow special effect needs to be acted.

Specifically, the main body is the position where the light and shadow effect needs to be acted on. The shadow effect can change the representation effect of the rendering area of the main body and the preset distance range, and the representation effect of the rendering area far away from the main body can not change. Fig. 2 is a light and shadow effect diagram according to an embodiment of the present invention. As shown in fig. 2, the W-shape of the highlight portion is the main body, and the solid black portion is a region farther from the main body. The predetermined distance range is determined in step S103.

S102, determining the shortest distance from each pixel point in the rendering area to the main body.

In detail, the main body is composed of line segments, the shortest distance is equivalent to the minimum distance from the pixel point to all the line segments of the main body, and the calculation formula of the shortest distance is as follows:

Distance(pixel,SL)=min{Distance(pixel,Li)|Li∈SL}

wherein, Distance (S)L) Representing the shortest distance from the current pixel point to the main body; distance (L)i) Indicating the current pixel point to a certain line segment L in the subjectiThe distance of (d); pixel is a current pixel point, and specific data of the pixel represents coordinate information of the current pixel point and can be expressed in a vector (x, y) form; sLRepresenting a main body, wherein the main body can be used as a line segment set; l isiIs an element in the set, i.e., a line segment that constitutes the body.

Specifically, the shortest distance calculation process can be further subdivided into three steps, and the current target line segment is assumed to be L1(L1∈SL) And two end points are respectively p0 and p1, the specific calculation process is as follows:

step one, connecting pixel and p0 into a line segment L1', calculating L1' on line segment L1The calculation formula of the projection shadow is as follows:

shadow=dot(pixel-po,normalize(p1-p0))

wherein dot represents a dot product operation; pixel represents the current pixel point; normaize denotes a normalization operation, i.e. the conversion of a vector of arbitrary length into a unit vector.

Step two, calculating the intersection pIs of the straight line passing through the point pixel and perpendicular to the target line segment and the straight line containing the target line segment by using the projection shadow, wherein the calculation formula is as follows:

pIs=p0+shadow*normalize(p1-p0)

and step three, judging whether the intersection point pIs is in the range defined by the end points p0 and p1 of the target line segment, if so, directly obtaining the shortest distance by calculating the distance from the pixel point pixel to the intersection point pIs, otherwise, taking the smaller value of the distances from the pixel to the p0 and the p 1.

It should be noted that, in this embodiment, all of the steps S102 to S105 are rendered based on OpenGL. All the calculations are performed through vector addition, subtraction and dot product operation, so that the discussion of the condition that the slope of a straight line does not exist (namely the condition that the straight line is parallel to the y axis of a coordinate system) is avoided, division operation is avoided as much as possible, and the consumption of the OpenGL rendering process is reduced to the maximum extent.

S103, determining the light-emitting effect of the corresponding pixel point according to the shortest distance, and performing glow rendering on the corresponding pixel point according to the light-emitting effect.

In detail, the luminous effect of the pixel position is determined by calculating the shortest distance between the pixel point and the main body, the glow effect is diversified, a developer can flexibly customize glow effects of different styles, and the method has higher expandability.

And S104, transforming texture sampling coordinates of the glow rendering result based on the fractal noise to obtain various shadow effects.

Specifically, the glow effect obtained in the previous step is utilized to render to obtain the shadow effect. The key point is the transformation of texture sampling positions, and a certain degree of deviation is carried out according to current texture sampling coordinates and playing time, and the direction and degree of the deviation are determined by fractal noise.

More specifically, the processing procedure of the fractal noise can be regarded as a function, the independent variable is texture sampling coordinates, and the dependent variable is an offset result. For two adjacent coordinates, the two corresponding outputs also need to be continuous, i.e. the fractal noise function is a continuous function. In the embodiment, the fractal noise is formed by superposing a plurality of Berlin noises with different parameters such as frequency, amplitude and phase. Since Berlin noise is continuous through an interpolation method, and the result of adding continuous functions is still continuous functions, fractal noise also has continuity. Furthermore, the trend of the function needs to have a significant randomness, causing frequent and intense fluctuations in vision, which is also enhanced by the addition of a number of different noises. Thus, the condition that the appearance is extremely irregular but not completely chaotic like natural things can be simulated.

And S105, superposing all the light and shadow effects to obtain the light and shadow special effect.

Specifically, all the light and shadow effects can be superposed through mixed modes such as normal mode, dissolution mode, positive plate superposition and color filtering, and the light and shadow special effect is obtained.

By adopting the technical scheme, the method for manufacturing the special shadow effect based on the fractal noise comprises the following steps: constructing a main body in the rendering area based on the lines; the main body is a place where the light and shadow special effect needs to be acted; determining the shortest distance from each pixel point in the rendering area to the main body; determining the luminous effect corresponding to the pixel point according to the shortest distance, and performing glow rendering on the pixel point according to the luminous effect; transforming texture sampling coordinates of glow rendering results based on fractal noise to obtain various shadow effects; and superposing all the light and shadow effects to obtain the light and shadow special effect. Based on this, since the noise calculation has low requirements on resources and time, the present embodiment consumes less computing resources and time, and can be applied to the mobile terminal. In addition, the invention supports flexible editing of the shadow special effect, and the generated shadow special effect has diversity and difference and real texture.

Preferably, the main body is composed of a straight line, a fitted second order bezier curve and/or a fitted third order bezier curve; the fitting second-order Bezier curve and the fitting third-order Bezier curve are obtained by fitting a plurality of straight line segments;

after the main body is constructed in the rendering area based on the lines, the method for manufacturing the special shadow effect based on the fractal noise further includes:

and acquiring the endpoint position information of each line segment of the main body, and transmitting the endpoint position information to OpenGL, so that OpenGL realizes steps S102-S105 according to the endpoint position information of each line segment.

In detail, the main body is composed of line segments, and the line segments are connected end to construct various shapes, so that the main body presents various shapes. The body supports three types of lines, namely a straight line, an n-fit second order bezier curve, and a fit third order bezier curve. The linear main body can be directly represented by a single line segment, and because the curve is difficult to directly process and draw in OpenGL, for fitting the Bezier curve, the fitting mode of a plurality of continuous line segments is selected to approximately express, the more the line segments are, the closer the fitting effect is to the curve, and the weaker the segmentation sense caused by the turning of the line segment connection part is.

The second order bezier curve equation is as follows:

B(t)=(1-t)2P0+2t(1-t)P1+t2P2,t∈[0,1]

the third order bezier curve equation is as follows:

B(t)=(1-t)3P0+3t(1-t)2P1+3t2(1-t)P2+t3P3,t∈[0,1]

wherein, P0、P1And P2Control points of the Bezier curve are respectively a constant part; t is the argument of the equation; b (t) is a dependent variable indicating a certain point on the curve.

By taking values of the independent variable t at equal intervals and acquiring corresponding results, the curve can be reasonably divided into a plurality of straight line segments.

Finally, in terms of data transmission, in this embodiment, referring to the data storage form of the vector diagram, the graph formed by the line segments can be restored in the subsequent steps only by the endpoint position information of the line segments, so that only the endpoint data of each line segment of the main body is transmitted to OpenGL for further processing.

Preferably, the method for manufacturing a special shadow effect based on fractal noise of this embodiment further includes: storing the shortest distance to a texture; the shortest distance is stored as vec2 type data.

Specifically, after the distance from the pixel point to each line segment of the main body is calculated, the minimum value, namely the shortest distance, is obtained, and the shortest distance is stored to the texture for further reading. The texture is a format for storing rendering data in OpenGL.

It is noted that the data format stored by the texture is generally RGBA format, which is a vec4 type data, and is composed of 4 numbers R, G, B (representing the three primaries red, green and blue, respectively) and a (representing transparency), and if the unit is float8 (8-bit floating point number), a single number can provide 1/256 decimal point precision or integer value range of [0,255 ]. To support a larger processing range or higher storage accuracy, the results of the calculations can be broken down and stored in two or more numbers (up to no more than 4) and read to merge them back into a single value. In this embodiment, the shortest distance is stored in one vec2 data (two vec2 may form one vec4), and the conversion formula and the inverse conversion formula are respectively:

r→vec2(mod(r,64.0),floor(r*0.015625))*0.015625

vec2.x*64.0+vec2.y*4096.0→r

wherein r represents the shortest distance; mod is a remainder operation; floor is the rounding operation.

The above calculation formula provides 64/256, i.e., 1/4 decimal point accuracy for r, and provides an integer range of [0,4159] (4159: 64+ 64-1).

Furthermore, the for loop is relatively inefficient to run in the GPU since this step requires the use of the for loop in the code. Considering that the distance has a property of linear variation, in order to maintain high performance, the texture is reduced to 240P resolution before the step of calculating the shortest distance, and after the calculation is completed, the texture is enlarged to the original size through an interpolation operation process carried by OpenGL. That is, before determining the shortest distance from each pixel point in the rendering region to the main body, the method for manufacturing a special lighting effect based on fractal noise according to the embodiment further includes: reducing the resolution of the texture to 240P; after determining the shortest distance from each pixel point in the rendering region to the main body, the method for manufacturing a special shadow effect based on fractal noise of this embodiment further includes: the resolution of the texture is scaled up to the original resolution.

Preferably, the calculation formula of the glow rendering is as follows:

color

=vec4(mix(dColor.rgb,sColor,rgb,pow(f,e1)),mix(0.0,sColor.a,pow(f,e2)))

wherein color represents the glow rendering result; dColor stands for glow color; sColor represents the subject color; f represents the interpolation proportion, and f is more than or equal to 0 and less than or equal to 1; mix represents a linear interpolation function; pow represents an exponential function, the first parameter is a base number, the second parameter is an exponent, and e1 and e2 are exponential parameters of the pow function; rgb represents the red, blue, green component of a color, a represents the transparency component of a color;

wherein, the calculation formula of f is as follows:

f=calcInterpolation(r,diffusion,bias)

wherein r represents the shortest distance; dispersion represents a diffusion factor; bias represents the bias factor.

Specifically, in addition to the shortest distance r, the present embodiment also provides a diffusion factor dispersion and a bias factor bias parameter. The role of the bias is to determine the wide range of the preset distance range of the main body mentioned in step S101, and the larger the value of the bias is, the closer the texture sampling position is to the direction of the main body, thereby indirectly widening the range of the glow effect, which is essentially achieved by scaling down the shortest distance r, i.e. r ═ scale, scale ∈ [0,1 ]. The effect of dispersion is to influence the performance of the glow, and particularly to change the brightness and opacity of the glow as a whole.

And (3) interpolating a calculation formula of glow rendering to obtain a final rendering result color, which is also a quantitative representation of the glow intensity effect of the current position, and the value is in a vec4 format. The shortest distance r and the diffusion factor dispersion both have a positive effect on the value of the interpolation ratio f, i.e. the larger the values of the shortest distance r and the diffusion factor dispersion, the larger the value of f. And since f ∈ [0,1], an exponential operation pow is used to distinguish its degree of influence on the bright and accessibility attributes. The larger the value of the interpolation proportion after the exponential operation is, the closer the value of the first three bits of the color is to the glow color, namely the higher the bright is, otherwise, the closer the color is to the main color; similarly, the closer the value of the fourth bit is to 0 (indicating complete transparency), the smaller the value of opacity, and vice versa, the closer to the opacity of the subject itself (typically 1, indicating complete opacity).

It is noted that as the value of the diffusion factor diffusion parameter is gradually increased from 0, the glow effect also generates a change process from the aggregation of the particles in the main body portion, the diffusion of the particles toward the periphery of the main body portion, and the complete disappearance of the particles (refer to fig. 3, fig. 4, and fig. 5, respectively), thereby exhibiting more excellent visual texture.

Preferably, the function of the fractal noise is a continuous function; the texture sampling coordinate based on the fractal noise transformation glow rendering result obtains various shadow effects, including:

shifting the texture sampling coordinate according to the following calculation formula; the offset results of all the texture sampling coordinates are the same; the offset result is proportional to the current time;

offset'=rot*time*speed

wherein offset' represents the offset result; rot denotes a rotation transformation matrix; time represents the current time; speed represents the motion speed of the shadow;

generating a fractal noise function by taking the texture sampling coordinate as an independent variable and taking the offset result as a dependent variable;

adding a vector parameter which continuously changes along with time in the fractal noise function according to the following calculation formula;

wherein fbm represents a fractal noise function; st' represents texture sample coordinates after pre-shifting; offB represents a vector parameter for enhancing the expressive force of the light and shadow flow effect; phase represents a phase parameter; frequency represents frequency; amplitude represents amplitude; transfmat represents a linear transformation matrix; perlinNoise represents the berlin noise function;

calculating the final texture sample coordinates according to the following calculation formula:

pos=st+fbm(st+offset'*a,offset'*b)

wherein pos represents the final texture sample coordinates; st represents the original texture sampling coordinates; a and b are respectively preset constants; fbm denotes the fractal noise function.

Sampling the texture at the final texture sampling coordinate, and rendering the sampling result to the original texture sampling coordinate to obtain a shadow effect;

and repeatedly executing the steps, and changing the internal parameters of the fractal noise function in the repeated execution process to obtain various shadow effects.

Specifically, in order to make the light and shadow effect dynamically change with time, before texture sampling coordinates are transmitted into the fractal noise function, all the texture sampling coordinates are subjected to an equivalent and proportional offset with the current time, so that the light and shadow can move in a certain fixed direction on the whole, and the effect similar to fluid flow is generated. On the basis, if the offset vector is pre-multiplied by a rotation transformation matrix, the purpose of controlling the movement direction of the shadow can be achieved. In order to enhance the expressive force of the flow effect, a vector continuously changing along with time is used as a parameter to be transmitted to the fractal noise function to influence the internal phase parameter phase of the fractal noise function.

Furthermore, a rich diversity effect can be created by adding linear transformation operations to the internal behavior of the fractal noise function (e.g. adding linear transformation operations in the transMat and/or modifying target parameters; the target parameters include frequency, amplitude and phase; the linear transformation operations include at least translation, scaling, rotation and tangent).

Preferably, the superimposing processing of all the light and shadow effects includes:

superposing all the light and shadow effects through a mixed mode; the hybrid mode is color filtering.

Specifically, all the light and shadow effects are superposed through the following calculation formula to obtain the light and shadow special effect:

color=white-(white-layer1)*(white-layer2)

wherein white represents pure white; layer1 and layer2 represent different light and shadow effect layers, respectively.

The embodiment provides flexible editing capability to generate light and shadow special effects with diversity and difference, and simultaneously ensures the natural and attractive appearance of the final result.

Based on a general inventive concept, the invention also provides a device for manufacturing the special effect of the shadow based on the fractal noise. Fig. 6 is a schematic structural diagram of a device for manufacturing a special shadow effect based on fractal noise according to an embodiment of the present invention. As shown in fig. 6, the device for manufacturing a special effect of shadow based on fractal noise of this embodiment includes: a build body module 61, a calculate shortest distance module 62, a glow rendering module 63, a determine shadow effects module 64, and a superimpose module 65.

The main body constructing module 61 is configured to construct a main body in the rendering area based on the lines; the main body is a place where the light and shadow special effect needs to be acted; a shortest distance calculating module 62, configured to determine a shortest distance from each pixel point in the rendering area to the main body; a glow rendering module 63, configured to determine a light-emitting effect corresponding to the pixel point according to the shortest distance, and perform glow rendering at the pixel point according to the light-emitting effect; a shadow effect determining module 64 for transforming texture sampling coordinates of the glow rendering result based on the fractal noise to obtain various shadow effects; and the superposition module 65 is configured to perform superposition processing on all the light and shadow effects to obtain a light and shadow special effect.

Preferably, the device for manufacturing a special effect of shadow based on fractal noise of this embodiment further includes: and the data transmission module is used for acquiring the endpoint position information of each line segment of the main body and transmitting the endpoint position information into OpenGL.

Preferably, the device for manufacturing a special effect of shadow based on fractal noise of this embodiment further includes: the holding module is used for storing the shortest distance to the texture; the shortest distance is stored as vec2 type data.

Preferably, the device for manufacturing a special effect of shadow based on fractal noise of this embodiment further includes: a texture resolution adjustment module for reducing the resolution of the texture to 240P;

after determining the shortest distance from each pixel point in the rendering region to the main body, the method further includes: the resolution of the texture is scaled up to the original resolution.

Preferably, the glow rendering module 63 performs glow rendering specifically according to the following calculation formula;

color

=vec4(mix(dColor.rgb,sColor.rgb,pow(f,e1)),mix(0.0,sColor.a,pow(f,e2)))

wherein color represents the glow rendering result; dColor stands for glow color; sColor represents the subject color; f represents the interpolation proportion, and f is more than or equal to 0 and less than or equal to 1; mix represents a linear interpolation function; pow represents an exponential function, the first parameter is a base number, the second parameter is an exponent, and e1 and e2 are exponential parameters of the pow function; rgb represents the red, blue, green component of a color, a represents the transparency component of a color;

wherein the calculation formula of f is as follows:

f=calcInterpolation(r,diffusion,bias)

wherein r represents the shortest distance; dispersion represents a diffusion factor; bias represents the bias factor.

Preferably, the module 64 for determining the shadow effect is specifically configured to implement the following method:

shifting the texture sampling coordinate according to the following calculation formula; the offset results of all the texture sampling coordinates are the same; the offset result is proportional to the current time;

offset'=rot*time*speed

wherein offset' represents the offset result; rot denotes a rotation transformation matrix; time represents the current time; speed represents the motion speed of the shadow;

generating a fractal noise function by taking the texture sampling coordinate as an independent variable and taking the offset result as a dependent variable;

adding a vector parameter which continuously changes along with time in the fractal noise function according to the following calculation formula;

wherein fbm represents a fractal noise function; st' represents texture sample coordinates after pre-shifting; offB represents a vector parameter for enhancing the expressive force of the light and shadow flow effect; phase represents a phase parameter; frequency represents frequency; amplitude represents amplitude; transfmat represents a linear transformation matrix; perlinNoise represents the berlin noise function;

calculating the final texture sample coordinates according to the following calculation formula:

pos=st+fbm(st+offset'*a,offset'*b)

wherein pos represents the final texture sample coordinates; st represents the original texture sampling coordinates; a and b are respectively preset constants.

Sampling the texture at the final texture sampling coordinate, and rendering the sampling result to the original texture sampling coordinate to obtain a shadow effect;

and repeatedly executing the steps, and changing the internal parameters of the fractal noise function in the repeated execution process to obtain various shadow effects.

Preferably, the determine light and shadow effect module 64 is specifically configured to add a linear transformation operation and/or modify a target parameter in the transMat; the target parameters include frequency, amplitude and phase; the linear transformation operations include at least translation, scaling, rotation, and tangent.

Preferably, the superimposing module 65 is specifically configured to perform superimposing processing on all the light and shadow effects through a hybrid mode; the hybrid mode is color filtering.

It should be noted that the present embodiment and the above embodiments are based on a general inventive concept, and have the same or corresponding implementation processes and beneficial effects, which are not described herein again.

It is understood that the same or similar parts in the above embodiments may be mutually referred to, and the same or similar parts in other embodiments may be referred to for the content which is not described in detail in some embodiments.

It should be noted that the terms "first," "second," and the like in the description of the present invention are used for descriptive purposes only and are not to be construed as indicating or implying relative importance. Further, in the description of the present invention, the meaning of "a plurality" means at least two unless otherwise specified.

Any process or method descriptions in flow diagrams or otherwise described herein may be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps of the process, and the scope of the preferred embodiments of the present invention includes additional implementations in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the embodiments of the present invention.

It should be understood that portions of the present invention may be implemented in hardware, software, firmware, or a combination thereof. In the above embodiments, the various steps or methods may be implemented in software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware, as in another embodiment, any one or combination of the following techniques, which are known in the art, may be used: a discrete logic circuit having a logic gate circuit for implementing a logic function on a data signal, an application specific integrated circuit having an appropriate combinational logic gate circuit, a Programmable Gate Array (PGA), a Field Programmable Gate Array (FPGA), or the like.

It will be understood by those skilled in the art that all or part of the steps carried by the method for implementing the above embodiments may be implemented by hardware related to instructions of a program, which may be stored in a computer readable storage medium, and when the program is executed, the program includes one or a combination of the steps of the method embodiments.

In addition, functional units in the embodiments of the present invention may be integrated into one processing module, or each unit may exist alone physically, or two or more units are integrated into one module. The integrated module can be realized in a hardware mode, and can also be realized in a software functional module mode. The integrated module, if implemented in the form of a software functional module and sold or used as a stand-alone product, may also be stored in a computer readable storage medium.

The storage medium mentioned above may be a read-only memory, a magnetic or optical disk, etc.

In the description herein, references to the description of the term "one embodiment," "some embodiments," "an example," "a specific example," or "some examples," etc., mean that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the invention. In this specification, the schematic representations of the terms used above do not necessarily refer to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples.

Although embodiments of the present invention have been shown and described above, it is understood that the above embodiments are exemplary and should not be construed as limiting the present invention, and that variations, modifications, substitutions and alterations can be made to the above embodiments by those of ordinary skill in the art within the scope of the present invention.

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:三维模型的渲染方法和装置、存储介质及计算机设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!