WorldViz User Forum

WorldViz User Forum (https://forum.worldviz.com/index.php)
-   Vizard (https://forum.worldviz.com/forumdisplay.php?f=17)
-   -   Panning Textures across a plane. (https://forum.worldviz.com/showthread.php?t=549)

shivanangel 04-06-2006 10:47 AM

Panning Textures across a plane.
 
Helllo,

I'm attempting to create an old school environment by creating a clouds plane to put up in my sky.

I'm perfectly capable of getting the clouds to just sit there on my plane through a texture file, however what I want to know is if I can
move the texture over the plane in a direction so that it seems like they
are moving.

Thanks,
George

P.S. Is there a way to define a set color on a texure to be transparent? So that I can have multiple cloud cover layers to give things some depth?

farshizzo 04-06-2006 11:29 AM

1 Attachment(s)
Hi,

I've attached a sample script that shows how to move a texture across a surface:
Code:

import viz
viz.go()

viz.clearcolor(viz.SKYBLUE)

#Create a quad to display texture
quad = viz.add(viz.TEXQUAD)
quad.translate(0,1.8,3)

CLOUD_SPEED = 0.1

#Create texture with repeating wrap mode
tex = viz.add('ball.jpg')
tex.wrap(viz.WRAP_S,viz.REPEAT)
tex.wrap(viz.WRAP_T,viz.REPEAT)
tex.pos = 0

#Apply texture to quad
quad.texture(tex)

def ontimer(num):
        #Increment texture position
        tex.pos += CLOUD_SPEED * viz.elapsed()
       
        #Create transform for texture
        mat = viz.Transform()
        mat.setTrans(tex.pos,0,0)
       
        #Apply transform to texture
        quad.texmat(mat)

viz.callback(viz.TIMER_EVENT,ontimer)
viz.starttimer(0,0,viz.FOREVER)

There is no built-in command to set a transparent color on a texture. You can set the transparent level on an object though. If you want only a certain color to be transparent then you will have to use a shader or simply edit the image with a program like Photoshop and save it to a format that supports transparency (png,tiff,etc..).

Also, I've attached a sample script that uses shaders to creating a moving sky with two cloud layers. I think it might be usefull for you.

halley 04-07-2006 07:14 AM

farshizzo,

Thanks for the specific shader example (I don't think there's an example of this in the manuals). I will also put it to work in a couple outdoor scenarios I have.

Am I understanding it right that the .vp is a "vertex program" OpenGL shader, and the .fp is a "face program" or "fragment program"? You grab the timestamp of the frame, and give it to the .vp code as a parameter. The .vp chooses the appropriate coordinates in the texture to correspond to the frame time, for each vertex. The .fp chooses the appropriate pseudocoloring for a pixel inside a textured triangle face (or fragment) from the given monochrome texture.

Does Vizard parse and compile the .vp/.fp content, or does the underlying OpenGL graphics system?

[I noted you had some Unix line endings in your scripts when I viewed them in Notepad. If anyone else sees that, just replace the little box characters into line breaks. The Vizard editor itself doesn't mind the difference.]

farshizzo 04-07-2006 08:45 AM

Quote:

Originally Posted by halley
Am I understanding it right that the .vp is a "vertex program" OpenGL shader, and the .fp is a "face program" or "fragment program"?

Yes, these are standard OpenGL vertex/fragment programs. Vizard 3.0 will support the higher level OpenGL shading language, which has a more C like syntax.

Quote:

Originally Posted by halley
Does Vizard parse and compile the .vp/.fp content, or does the underlying OpenGL graphics system?

Your OpenGL driver is in charge of compiling the program and uploading it to the graphics card.


All times are GMT -7. The time now is 12:10 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC