精华内容
下载资源
问答
  • 球体版本的广告牌是圆柱体广告牌的一个简单扩展。在使用圆柱广告牌技术将物体旋转之后,所剩下的工作就是使物体倾斜以达到真正面对照相机的效果。 The axis of rotation is the right vector. As for the ...

    The spherical version is a simple extension to the cylindrical case. After the object is rotated using the cylindrical approach, all that is left to do is to tilt the object until it truly faces the camera.

    球体版本的广告牌是圆柱体广告牌的一个简单扩展。在使用圆柱广告牌技术将物体旋转之后,所剩下的工作就是使物体倾斜以达到真正面对照相机的效果。

    The axis of rotation is the right vector. As for the angle, a cosine can be obtained by the inner product between objToCamProj and objToCam.

    旋转轴是右向量。至于这个角度嘛,可以用objTocamProj向量和objToCam向量的内积来求出角度的cosine值。

    As in the previous billboards a function can be defined to setup the billboard. The code is as follows:
    正如先前的广告牌那样,可以定义一个函数来生成广告牌。代码如下:

    void billboardSphericalBegin(float camX, float camY, float camZ,float objPosX, float objPosY, float objPosZ) {
    
    	float lookAt[3],objToCamProj[3], objToCam[3], upAux[3];
    	float modelview[16],angleCosine;
    
    	glPushMatrix();
    
    // objToCamProj is the vector in world coordinates from the 
    // local origin to the camera projected in the XZ plane
    	objToCamProj[0] = camX - objPosX ;
    	objToCamProj[1] = 0;
    	objToCamProj[2] = camZ - objPosZ ;
    
    // This is the original lookAt vector for the object 
    // in world coordinates
    	lookAt[0] = 0;
    	lookAt[1] = 0;
    	lookAt[2] = 1;
    
    
    // normalize both vectors to get the cosine directly afterwards
    	mathsNormalize(objToCamProj);
    
    // easy fix to determine wether the angle is negative or positive
    // for positive angles upAux will be a vector pointing in the 
    // positive y direction, otherwise upAux will point downwards
    // effectively reversing the rotation.
    
    	mathsCrossProduct(upAux,lookAt,objToCamProj);
    
    // compute the angle
    	angleCosine = mathsInnerProduct(lookAt,objToCamProj);
    
    // perform the rotation. The if statement is used for stability reasons
    // if the lookAt and objToCamProj vectors are too close together then 
    // |angleCosine| could be bigger than 1 due to lack of precision
       if ((angleCosine < 0.99990) && (angleCosine > -0.9999))
          glRotatef(acos(angleCosine)*180/3.14,upAux[0], upAux[1], upAux[2]);	
          
    // so far it is just like the cylindrical billboard. The code for the 
    // second rotation comes now
    // The second part tilts the object so that it faces the camera
    
    // objToCam is the vector in world coordinates from 
    // the local origin to the camera
    	objToCam[0] = camX - objPosX;
    	objToCam[1] = camY - objPosY;
    	objToCam[2] = camZ - objPosZ;
    
    // Normalize to get the cosine afterwards
    	mathsNormalize(objToCam);
    
    // Compute the angle between objToCamProj and objToCam, 
    //i.e. compute the required angle for the lookup vector
    
    	angleCosine = mathsInnerProduct(objToCamProj,objToCam);
    
    
    // Tilt the object. The test is done to prevent instability 
    // when objToCam and objToCamProj have a very small
    // angle between them
    
    	if ((angleCosine < 0.99990) && (angleCosine > -0.9999))
    		if (objToCam[1] < 0)
    			glRotatef(acos(angleCosine)*180/3.14,1,0,0);	
    		else
    			glRotatef(acos(angleCosine)*180/3.14,-1,0,0);	
          
    }
    
    


     

     The function billboardEnd() should be called after rendering the object as shown in the following example.

    函数billboardEnd()应该在渲染完物体后被调用,正如我们再先前的那个例子中做的。

     

    billboardCylindricalBegin(cx,cy,cz,ox,oy,oz);
        drawObject();
    billboardEnd();
    

    展开全文
  • 广告牌教程:圆柱型广告牌技术

    千次阅读 2013-04-12 22:57:09
    真正的广告牌技术就像上文具有视觉欺骗性质的广告牌一样限制物体绕某个坐标轴旋转,但是物体的LookAt向量将被旋转到照相机的方向,而这个LookAt向量的旋转被限制在一个由up向量和局部坐标系原点定义的平面内。...

    True cylindrical billboarding constraints the objects rotation to an axis, as in the cheating version, but the look at vector from the object will be rotated in the camera's direction, restricted to the plane defined by the up vector, and the center of the local origin. The following image shows what happens.

    真正的广告牌技术就像上文具有视觉欺骗性质的广告牌一样限制物体绕某个坐标轴旋转,但是物体的LookAt向量将被旋转到照相机的方向,而这个LookAt向量的旋转被限制在一个由up向量和局部坐标系原点定义的平面内。下面的图片显示了所发生的事情。

    In the previous example, a user walking in the ground, the trees would correctly face the user.

    在先前的例子中,一个用户在地面上行走,树木会正确的朝向用户。

     

    The method presented in here requires that you know where the object is in world coordinates, as well as the targets position, also in world coordinates. Usually the target is the camera's position which known. However the same may not be true for the object. If the object is positioned in the world through geometric transformations, such as translations and rotations, then keeping track of its position in world coordinates can be a hard task. We'll come back to this issue in alater section.

    这里所探讨的方法要求你知道物体和目标的位置在世界坐标系中的坐标值。通常目标是在照相机的位置而且位置已知。然而物体可能并不是这个情况,他的位置不能直接获得。如果物体通过几何变换而被放置在世界坐标系中,比如通过平移和旋转,那么视图跟踪他在世界坐标系中位置变换的轨迹可能会是一个艰难的工作。我们将会在后期的话题中讨论这个问题。

    Assuming that both the objects and target positions are known in world coordinates, then billboarding becomes a simple geometrical operation.

    假设物体和目标的世界坐标已知,那么广告牌技术将会是一个简单的几何操作。

    For simplicity reasons it is assumed that the object has the following vectors:

    为了简化处理的原因我们假设物体有如下的向量:

    right vector = [1,0,0] up vector = [0,1,0] lookAt vector = [0,0,1]

    In practice this means that the object is drawn in the local origin, and it is looking along the positive Z axis.

    事实上这意味着物体在局部坐标空间绘制,并且物体的正面朝向z轴正方向。//译者注:z轴正方向垂直屏幕指向观察者

    In order to orientate the object a rotation is performed around the up vector, by the angle between the lookAt vector and the vector from the object to the camera.

    为了使这个物体特殊方向化,一个绕up向量的旋转操作被执行,旋转的角度是lookAt向量和物体到相机形成的向量之间的夹角。

    The vector from the object to the camera can be defined as

    objToCam = CamPos - ObjPos

    从物体到相机的向量被定义为如下值

    物体到相机向量=相机位置-物体位置

    The vector objToCamProj is the projection of objToCam in the XZ plane. Therefore its Y componente should be set to zero.

    向量objToCamProj是objToCam向量在XZ平面上的投影向量。因此Y方向的值应该被设置为0。

     

    If objToCamProj is normalized then the inner product between lookAt andobjToCam will allow the computation of the cosine of the angle. However knowing the cosine alone is not enough, since the cos(a) = cos(-a). Computing the cross product as well allows us to uniquely determine the angle. The cross product vector will have the same direction as the up vector if the angle is positive. For negative angles theup vector's direction will opposed to the up vector, effectively reversing the rotation.

    如果向量objToCamProj已经被标准化了,那么向量lookAt和向量objToCam的内积就是角度A的cos(A)值。然而光是知道cosine值还是不够的,因为cos(a)=cos(-a)。与此同时计算那两个向量的叉乘值将会帮助我们唯一确定那个角度值。如果角度是正值的话,那么叉乘的结果向量将会拥有和up向量相同的方向。对于负的角度值计算出来的那个叉乘结果向量的方向将和up向量的方向相反,从而实际上相相反的方向旋转物体。

    The required steps after computing objToCamProj are:

    1. normalize(objToCamProj) 2. angleCosine = innerProduct(lookAt,objToCamProj) 3. upAux = crossProduct(lookAt,objToCamProj) 4. glRotatef(acos(aux)*180/3.14,upAux[0], upAux[1], upAux[2]);

    在计算完objToCamProj向量后还要执行以下步骤:

    1. 标准化向量objToCamProj 2. 计算lookAt objToCamProj的内积3. 计算lookAt objToCamProj的叉乘积并赋值给upAux向量。4. glRotatef(acos(aux)*180/3.14,upAux[0], upAux[1], upAux[2]); //这个是OpenGL的旋转函数第一参数是旋转的角度,后面三个参数组成一个向量,这个向量就是旋转时若绕的轴

    As in the previous billboards a function can be defined to setup the billboard. The code is as follows:
    正如先前的广告牌一样,可以定义一个函数来建立广告牌。代码如下。

    void billboardCylindricalBegin(float camX, float camY, float camZ,float objPosX, float objPosY, float objPosZ) {
    
    	float lookAt[3],objToCamProj[3],upAux[3];
    	float modelview[16],angleCosine;
    
    	glPushMatrix();
    
    // objToCamProj is the vector in world coordinates from the 
    // local origin to the camera projected in the XZ plane
    	objToCamProj[0] = camX - objPosX ;
    	objToCamProj[1] = 0;
    	objToCamProj[2] = camZ - objPosZ ;
    
    // This is the original lookAt vector for the object 
    // in world coordinates
    	lookAt[0] = 0;
    	lookAt[1] = 0;
    	lookAt[2] = 1;
    
    
    // normalize both vectors to get the cosine directly afterwards
    	mathsNormalize(objToCamProj);
    
    // easy fix to determine wether the angle is negative or positive
    // for positive angles upAux will be a vector pointing in the 
    // positive y direction, otherwise upAux will point downwards
    // effectively reversing the rotation.
    
    	mathsCrossProduct(upAux,lookAt,objToCamProj);
    
    // compute the angle
    	angleCosine = mathsInnerProduct(lookAt,objToCamProj);
    
    // perform the rotation. The if statement is used for stability reasons
    // if the lookAt and objToCamProj vectors are too close together then 
    // |angleCosine| could be bigger than 1 due to lack of precision
       if ((angleCosine < 0.99990) && (angleCosine > -0.9999))
          glRotatef(acos(angleCosine)*180/3.14,upAux[0], upAux[1], upAux[2]);	
    }
    
    


     The function billboardEnd() should be called after rendering the object as shown in the following example.

    函数billboardEnd()应该在渲染物体之后被调用,如下代码所示。

    billboardCylindricalBegin(cx,cy,cz,ox,oy,oz);
        drawObject();
    billboardEnd();
    


     

     

     

     

    展开全文
  • The technique about to be presented isn't true billboarding. Instead it provides a cheap way of achieving an approximation that may be good ...这里将要展示的不是真正的广告牌技术。相反它提供了一些应用软件

    The technique about to be presented isn't true billboarding. Instead it provides a cheap way of achieving an approximation that may be good enough in some applications.

    这里将要展示的不是真正的广告牌技术。相反它提供了一些应用软件能够接受的逼近效果的方法的简单实现。

    The source code for this tutorial is an extension to one of the projects on the GLUT tutorial. If you're not familiar with GLUT then maybe you should check it out to get a better grasp of the source code.

    这个教程的源代码作为扩展是GLUT tutorial项目的一部分。如果你对GLUT不熟悉,那么你要想读明白它你就应该看看GLUT从而你可以很好的了解源代码。

    The following image is a screenshot of the demo. It shows a snowman plus some billboarded trees. Although it is hard to tell, the trees aren't facing the camera, although it is hard to tell. Instead they are facing a plane perpendicular to the cameras viewing direction.

    下面的这个图像时demo版本的场景。它展示了一个雪人和一些广告牌技术绘制的树木。虽然很难描述,但是这里的树木并不面向照相机,虽然很难说。相反,他们面向一个垂直于相机视线方向的平面。

    The next diagram gives a clearer picture of what's going on. The black circle at the bottom represents the camera. The vector starting from the camera is the current viewing direction. This vector defines the orientation of the plane perpendicular to the cameras viewing direction. The objects in the scene, O1..O3, have been rotated so that their front facing vector is pointing to this plane. It is assumed that the objects in the scene are positioned in the local origin, and that they're facing the poistive Z axis.

    下面的这个图形清晰的展示了所发生的的事情。底部的黑色的圈代表照相机。从相机发出的向量是当前的视线方向。这个向量定义了垂直于相机视线的平面。场景中的物体O1..O3,已经被旋转以使他们的前面的faceing向量指向这个平面。这里假设场景中的物体在局部坐标原点,并且面向z轴正方向。

    An approach to achieve this effect requires the modelview matrix. As you're aware the modelview matrix stores the geometric transformations, rotations, scales and translations, you do. This matrix contains the required transformations to change the coordinates you input, world coordinates, into camera coordinates.

    达到这种效果的方法是使用模型视图矩阵。正如你所了解的模型视图矩阵存储了几何变换,旋转,缩放和平移信息。这个矩阵包括改变你输入的坐标所做的变换,从世界坐标到相机坐标。

    The top 3 values of the right column provide the current position of the local origin relative to the camera's position and orientation. The top 3x3 submatrix contains the scaling and rotation operations. Setting this submatrix to the identity matrix effectively reverses these operations, so that the cameras viewing direction is aligned with the worldsZ axis. The up and right vectors of the camera are also aligned with the worlds axis, which means that this type of billboard acts like a cheat to spherical billboarding. The center of the billboard is the local origin. If you're planning to do your trees with this type of billboarding then when the user looks up or down the trees will bend forwards and backwards as well, which may be a little awkward. This is because the orientation of the billboard depends on the camera's orientation as opposed to the camera's position.

    最右边那列的前三个值提供了局部坐标系原点的位置,这个位置是相机坐标位置和方向相关的。最上面的3X3字矩阵包括了缩放和旋转操作。将这个子矩阵设置为单位矩阵也就意味着重置了这些操作,从而相机的视线方向与世界坐标系的z轴平行。相机的up向量和right向量同样平行于世界坐标系的轴,这意味着这种广告牌看起来是一个球体广告牌哦欺骗版本。广告牌的中心是局部坐标原点。如果你打算用这种方法放置你的树木到场景中,当用户从上或从下观察树木时将会向前或向后弯曲,可能会有一点糟糕。这是因为广告牌的方向取决于照相机的方向和相机的位置相反。

     

    In practice, setting the submatrix to the identity matrix means the your object won't suffer any rotation when it is rendered. Therefore it will be rendered in the same way as if the camera was looking down the negative Z axis.

    实际上,设置子矩阵为单位矩阵意味着你的物体不会受任何旋转操作的影响当他被渲染的时候。因此当物体被渲染的时候放佛相机朝着z轴的负方向。

    Note that scaling is also reversed, so if you wanted a tall tree you're not going to get it with this method, unless you scale after you changed the modelview matrix.

    注意缩放也被重置了,因此如果你有一个很高的树并不想使用这种方法,你就应该在改变模型视图矩阵后再缩放。

    The first step is to save the current modelview matrix. Afterwards get the modelview matrix. Then reset the top 3x3 submatrix to the identity matrix. Load the matrix in to the OpenGL state machine, and render your object in the local origin. Finally restore the original modelview matrix.
    第一步是保存当前的模型视图矩阵。然后得到这个模型视图矩阵。接着重置top 3X3子矩阵为单位矩阵。加载这个矩阵到OpenGL状态机,在局部坐标原点渲染你的物体。最后恢复你的原始模型视图矩阵。

    float modelview[16];
    int i,j;
    
    // save the current modelview matrix
    glPushMatrix();
    
    // get the current modelview matrix
    glGetFloatv(GL_MODELVIEW_MATRIX , modelview);
    
    // undo all rotations
    // beware all scaling is lost as well 
    for( i=0; i<3; i++ ) 
    	for( j=0; j<3; j++ ) {
    		if ( i==j )
    			modelview[i*4+j] = 1.0;
    		else
    			modelview[i*4+j] = 0.0;
    	}
    
    // set the modelview with no rotations and scaling
    glLoadMatrixf(modelview);
    
    drawObject();
    
    // restores the modelview matrix
    glPopMatrix();
    


    With the above snippet of code, the object will be rotated to face the plane perpendicular to the cameras viewing direction. The centre for this rotation is the local origin.

    使用上面的代码片段,物体将被旋转到面向垂直于相机视线方向的平面。旋转的中心是局部坐标系原点。

    The above code can be divided in two functions, besides the rendering function, drawObject. The first function will setup the modelview matrix, and the second will restore the current matrix.

    上面的代码可以被分为两个函数,除了渲染函数,drawObject函数。第一个函数设这模型视图矩阵,第二个恢复当前矩阵。

    void billboardCheatSphericalBegin() {
    	
    	float modelview[16];
    	int i,j;
    
    	// save the current modelview matrix
    	glPushMatrix();
    
    	// get the current modelview matrix
    	glGetFloatv(GL_MODELVIEW_MATRIX , modelview);
    
    	// undo all rotations
    	// beware all scaling is lost as well 
    	for( i=0; i<3; i++ ) 
    	    for( j=0; j<3; j++ ) {
    		if ( i==j )
    		    modelview[i*4+j] = 1.0;
    		else
    		    modelview[i*4+j] = 0.0;
    	    }
    
    	// set the modelview with no rotations
    	glLoadMatrixf(modelview);
    }
    
    
    
    void billboardEnd() {
    
    	// restore the previously 
    	// stored modelview matrix
    	glPopMatrix();
    }
    
    


    The source code for rendering a billboard object becomes:
    渲染广告牌物体的代码如下:

    billboardCheatSphericalBegin();
        drawObject();
    billboardEnd();
    


    As mentioned before, scaling operations are lost when you set the new modelview matrix. If you want to scale your objects you can do it after setting up the billboard as in the following snippet.
    正如先前提到的,缩放操作丢失了,当你设置新的模型视图矩阵的时候。如果你想缩放你的物体你可以在设置广告牌后做如下代码片段。

    billboardCheatSphericalBegin();
        glScalef(1,2,1);
        drawObject();
    billboardEnd();
    


     

    展开全文
  • 这个版本和球体化广告牌的区别在前文中已经讲述过,也就是当相机looks up或者down的时候广告牌不移动。当相机向右或向左看的时候广告牌仅仅被旋转。 This type of billboards can be applied to trees. Trees ...

    As mentioned in the previous section, the modelview matrix contains the transformations required to perform the change of coordinates between local coordinates and world coordinates. It has been shown that by replacing the top 3x3 submatrix with the identity matrix a cheating version of spherical billboarding can be obtained. But what about Cylindrical billboarding?

    正如先前提到的,模型视图矩阵包括使物体坐标在局部坐标空间与世界坐标空间转变的变换操作。已经展示过了,通过替换top3X3子矩阵为单位矩阵,一个欺骗性质的球体化广告牌获得了。但是圆柱体化的广告牌呢?

    Let us analyze in depth what is actually the structure of the top 3X3 submatrix. This matrix contains 3 columns, and each has a special meaning. The first is the right vector, the second column is the up vector and the 3rd represents the lookAt vector. These vectors are relative to the cameras orientation. Setting the top 3x3 submatrix to the identity matrix effectively causes the camera's coordinate system to be aligned with the worlds coordinate system.

    让我们深度分析一下top3X3子矩阵的实际结构。这个矩阵包括3列,每一列都有一个特殊含义。第一列是右向量,第二列是上向量,第三列是lookAt向量。这些向量是相机方向相关的。设置top3X3子矩阵为单位矩阵将引起相机坐标系统的坐标轴与世界坐标系的轴平行。

    In order to achieve a (cheating) Cylindrical Billboard, it is sufficient to align the right and lookAt vectors, leaving the up vector unchanged. The difference between this version and the spherical one, presented in the previous section, is that when the camera looks up or down the billboard won't move. The billboard will only be rotated when the camera looks right or left.

    为了获得(欺骗性质)圆柱体化广告牌,有必要调整right向量和lookAt向量,保持up向量不变。这个版本和球体化广告牌的区别在前文中已经讲述过,也就是当相机looks up或者down的时候广告牌不移动。当相机向右或向左看的时候广告牌仅仅被旋转。

    This type of billboards can be applied to trees. Trees don't bend backwards and forwards as the camera looks down or up because the up vector is fixed, so it doesn't make much sense to use a spherical billboard. Beware that the illusion is broken when you fly over the tree. In this case you'll see your tree getting thinner and thinner and all is lost. However if you're application keeps you on the terrain then cylindrical billboarding is a good option.

    这个类型的广告牌可以被应用于树木。树木不会向前或向后倾斜当相机向上或向下观察的时候,因为up向量是固定不变的,所以使用球体化的广告牌没有多大意义。要意识到当你从树木顶部飞过的时候这个假象会暴露。这种情况下你会发现你的树越来越细直至消失。然而如果你的应用程序保持你在地面那么圆柱体化广告牌将会是一个不错的选择。

    The code for cheating cylindrical billboards is almost identical to the spherical version.
    欺骗性质的圆柱体化广告牌的代码几乎和球体化的相同。
    float modelview[16];
    int i,j;
    
    // save the current modelview matrix
    glPushMatrix();
    
    // get the current modelview matrix
    glGetFloatv(GL_MODELVIEW_MATRIX , modelview);
    
    // The only difference now is that
    // the i variable will jump over the
    // up vector, 2nd column in OpenGL convention
    
    for( i=0; i<3; i+=2 ) 
    	for( j=0; j<3; j++ ) {
    		if ( i==j )
    			modelview[i*4+j] = 1.0;
    		else
    			modelview[i*4+j] = 0.0;
    	}
    
    // set the modelview matrix with the 
    // up vector unchanged
    glLoadMatrixf(modelview);
    
    drawObject();
    
    // restores the modelview matrix
    glPopMatrix();
    
    


    As we did before, the above code can be divided in two functions, besides the rendering function, drawObject. The first function will setup the modelview matrix, and the second will restore the current matrix.
    正如我们先前做的,上面的代码可以被分为两个函数,包括渲染函数,drawObject函数。第一个函数设置模型视图矩阵,第二个恢复当前矩阵。

    void billboardCheatCylindricalBegin() {
    	
    	float modelview[16];
    	int i,j;
    
    	// save the current modelview matrix
    	glPushMatrix();
    
    	// get the current modelview matrix
    	glGetFloatv(GL_MODELVIEW_MATRIX , modelview);
    
    	for( i=0; i<3; i+=2 ) 
    	    for( j=0; j<3; j++ ) {
    		if ( i==j )
    		    modelview[i*4+j] = 1.0;
    		else
    		    modelview[i*4+j] = 0.0;
    	    }
    
    	// set the modelview matrix
    	glLoadMatrixf(modelview);
    }
    
    
    
    void billboardEnd() {
    
    	// restore the previously 
    	// stored modelview matrix
    	glPopMatrix();
    }
    
    


    The source code for rendering a billboard object becomes:

    渲染物体的源代码如下:

    billboardCheatCylindricalBegin();
        drawObject();
    billboardEnd();
    


    Again, beware with scaling operations. Scaling in the X and Y axis will be undone using this approach, but scaling in the Z axis will persist. the best option is to scale after you call billboardCheatCylindricalBegin().

    再一次要注意缩放操作。使用这个方法,缩放x y坐标轴将被撤销,但是缩放z轴的操作将被保持。最好的选择是在调用billboardCheatCylindricalBegin()函数之后缩放。

     

    展开全文
  • unity实现动态广告牌效果

    千次阅读 2013-11-13 09:54:26
    虚拟展示的时候,有时候要一些广告牌或公告牌之类的展板,想要动态的字体效果,详细内容见纳金网:http://www.narkii.com/club/thread-266554-1.html
  • Unity 广告牌 (Billboard)的实现

    千次阅读 2018-11-14 15:06:44
    实现一个广告牌的效果,使一个面片在摄像机旋转的过程中始终面向摄像机。实现效果如下截图。
  • 有三种广告牌,A、B和C,其中A占一块,B占两块,C占三块;并且A不能与A相邻,B、C没有限制。 输入广告区域总长度n,求有几种放置广告牌的方案。 思路: 笔试的时候想成了动态规划问题,一直找不到规律,现在...
  • 使用ViewFLow制作循环滑动广告牌

    千次阅读 2015-11-05 16:46:53
    广告牌是android客户端中常见得一种效果,那么我们今天就用viewflow这个开源控件来制作一个可以循环滑动的广告牌。、  首先可以从git上下载插件,然后集成到我们的项目中。地址:...
  • Unity中SpriteRender实现广告牌效果

    千次阅读 2015-09-29 15:36:40
    通过刷新修改SpriteRender组建来实现一个翻广告牌的效果,一般的资源原图最好是能两张或更多,实现起来就能类似广告牌那样展现,或者只有一张也可以单独作为一个显示图片的动画来用: 首先是游戏场景中对象的节点...
  • 完项目中广告牌的效果,顺便分享一下。更多可以参考官网的例子查看详情 先上效果图: 1.添加广告牌: 2.鼠标滑过效果(放大了一点点): 3.鼠标点击后,视野定位到具体的位置: 1.添加广告牌代码: viewer....
  • 广告牌即时生成器

    千次阅读 2009-11-20 13:34:00
    什么是Banner Maker面对总是缺乏新意的广告牌设计,你是否曾幻想着有一天从一个平凡人蜕变成设计大师?Bannermaker的诞生无疑为众多平凡人铺就了一条蜕变的捷径-------站在设计大师的肩膀上完成自己的作品,这样...
  • 51单片机课程设计——led点阵广告牌程序设计

    万次阅读 多人点赞 2020-02-06 18:15:56
    上学期期末的课设题目是led点阵广告牌,当时的要求如下: (1)能够显示不同字符的LED点阵广告牌; (2)按键切换不同的显示效果(如闪烁,静止,平移等); (3)按键切换不同的显示内容; (4)能够显示图形或...
  • Unity3d 广告牌效果

    千次阅读 2014-01-17 15:55:50
    旋转物体始终面向摄像机, Scene和Game 场景中都可以使用,  直接使用LookAt(...)方法的话会有问题,物体面向摄像机的同时会绕Z轴旋转, 解决方法就是改为, 不是面对摄像机而是面对摄像机所在的平面. ...
  • 品牌广告与效果广告

    千次阅读 2018-11-16 20:17:32
    品牌广告(Brand Awareness),以树立产品品牌形象,提高品牌的市场占有率为直接目的,突出传播品牌在消费者心目中确定的位置的一种方法,通俗讲就是你在购买某种消费品时,第一时间想起的品牌,这就是品牌广告的...
  • LED广告牌制作方法

    2010-12-10 13:54:00
    http://www.led88.cn/ LED字_LED显示屏_特大LED字_招牌制作_灯箱广告_活动策划_佛山SED字 欢迎来电订购!
  • 广告牌(Billboard)材质 Billboard概述 Billboard技术在游戏引擎中占有很重要的地位,一般用在粒子效果或者光晕效果上,让粒子面片z轴朝向摄影机。Unity里面也不例外 ,在Unit
  • 特斯拉的 Autopilot 系统有多好...路边的电子广告牌正在播放上述广告,一辆特斯拉从旁边经过时受到了广告中一闪而过的停车标志误导,将车停下。 这种针对自动驾驶汽车的对抗攻击也不是什么新鲜事,但在以往的研究中,.
  • 近日,又一则涉及性贿赂的新闻引发关注,只不过这次的双方人物,都有点奇怪,一个是城管副中队长,一个是酒店女老板,女老板“献身”,是为了一块户外广告牌。很多人调侃,说连城管都能收到性贿赂,自己白混了。实际...
  • 你正在安装一个广告牌,并希望它高度最大。这块广告牌将有两个钢制支架,两边各一个。每个钢支架的高度必须相等。 你有一堆可以焊接在一起的钢筋 rods。举个例子,如果钢筋的长度为 1、2 和 3,则可以将它们焊接在...
  • 正如先前提到的要想得到一个欺骗性质的广告牌,重置top3X3子矩阵-模型视图矩阵。先前的部分被实现了通过设置子矩阵从而变换被重置。 In here an alternative approach is presented. This is also a popular ...
  • 展示广告牌在市场营销中起着非常重要的作用,有很多种广告方法,例如报纸、海报、发光招牌等。但是,由于数字LED显示板的可靠性和优势,如今它正变得越来越流行。尽管它们有点贵,但它们还是耐用且可定制的,例如...
  • 第二十七课 广告牌和几何着色器 背景 在前面的几章内容里,我们已经认识了顶点着色器和片元着色器,但事实上,我们遗漏了一个很重要的着色器——几何着色器(GS)。微软在 DirectX10 中使用了这个着色器,后来...
  • 利用之前学过的多线程处理技术,我们一个开启新线程实现电子广告牌的项目 界面布局文件,加入ImageView图片控件,用于显示一个图片,一个TextView控件,用于显示广告说明语。 res/layout/main.xml: xmln
  • Unity Shader 学习笔记(18)纹理动画、顶点动画、广告牌技术 参考书籍:《Unity Shader 入门精要》 Unity Shader的内置变量纹理动画可用于代替粒子系统模拟动画效果。帧序列动画8x8帧序列纹理动画 Properties { ...
  • 示例 – 创建一个广告牌平面  Unity 自带一个平面 (Plane) 原始对象,但是更简单的平面在二维游戏或 GUI 中可能非常有用,在任何情况下可以一个好的开始示例。一个最小平面包含四个顶点,界定两个三角形的...
  • STC89C52使用经典的MCS-51内核,但了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案...
  • 在游戏项目中我们常常看到商城的广告牌,几张广告图片循环滚动,类似跑马灯,现在我将讨论一种实现方法,并提供一个管理类,大家可以直接使用。 实现原理:背景图片循环滚动的原理很简单:两张图片向一个方向移动...
  • 运动品牌广告

    千次阅读 2009-05-18 20:30:00
    昨天看一运动品牌的广告觉得特有感触,一些运动品牌的广告词写得真好!... Anything is possible(一切皆有可能)——Li-ning Just di it (想)——NIKE Impossible is nothing(没有什么不可能)——Adidas 

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 60,469
精华内容 24,187
关键字:

做广告牌