我想做一个圆柱体,在上面精确的并列贴上一组图片,请问大家有无思路。
我曾经做了一个,用OpenGL的贴纹理技术。感觉不行。

解决方案 »

  1.   

    用res文件或者rc文件调用图像即可,res文件用loadinmages函数,rc文件用loadformfile函数
      

  2.   

    还是用photoshop等软件事先用手工做好。
      

  3.   

    使用directx编程.
    这要求技术含量多一些.但得到结果是最另人满意的效果.付出总有回报.
      

  4.   

    难道OpenGL不如DirectX?我觉得用两者恐怕都不行,有没有另外的途径解决这个问题呢?
      

  5.   

    用OpenGL
    先绑定纹理,再绘制园柱
      

  6.   

    VisualLion(狮子):
    不知道你要的“一组园柱”之间有什么差别?
    大小?颜色?纹理?都要求不同吗?
      

  7.   

    抱歉,看错了,你要的是在同一个园柱的不同部位上产生不同的纹理。
    如果是这样,我也同意Researcher(游戏人)的看法,可以先绑定纹理,再绘制园柱。
      

  8.   

    如果OPENGL和DX都无法满足你的要求,其他的就更不可能了你说的“可是纹理贴上去后好像是反的,而且旋转时也有异常。”这是你的纹理坐标没设好~!贴纹理之前先设置好纹理坐标!
      在绘制纹理映射场景时,不仅要给每个顶点定义几何坐标,而且也要定义纹理坐标。经过多种变换后,几何坐标决定顶点在屏幕上绘制的位置,而纹理坐标决定纹理图像中的哪一个纹素赋予该顶点。并且顶点之间的纹理坐标插值与基础篇中所讲的平滑着色插值方法相同。
      纹理图像是方形数组,纹理坐标通常可定义成一、二、三或四维形式,称为s,t,r和q坐标,以区别于物体坐标(x, y, z, w)和其他坐标。一维纹理常用s坐标表示,二维纹理常用(s, t)坐标表示,目前忽略r坐标,q坐标象w一样,一半值为1,主要用于建立齐次坐标。OpenGL坐标定义的函数是:  void gltexCoord{1234}{sifd}[v](TYPE coords);  设置当前纹理坐标,此后调用glVertex*()所产生的顶点都赋予当前的纹理坐标。对于gltexCoord1*(),s坐标被设置成给定值,t和r设置为0,q设置为1;用gltexCoord2*()可以设置s和t坐标值,r设置为0,q设置为1;对于gltexCoord3*(),q设置为1,其它坐标按给定值设置;用gltexCoord4*()可以给定所有的坐标。使用适当的后缀(s,i,f或d)和TYPE的相应值(GLshort、GLint、glfloat或GLdouble)来说明坐标的类型。注意:整型纹理坐标可以直接应用,而不是象普通坐标那样被映射到[-1, 1]之间。