blender/doc/python_api/examples/bge.texture.py

34 lines
1017 B
Python
Raw Normal View History

"""
Basic Video Playback
++++++++++++++++++++
BGE: bge.texture API documentation enhancement This patch attempts to improve and review the documentation of bge.texture, as requested in the [[ http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/GameEngine#Video_Texture | TODO list ]]. More specifically, it - fixes the rst syntax, including titles of the examples bge.texture.py and bge.texture.1.py; - adds, standardizes and reviews description of the API elements, particularly signatures, types, etc. - adds SOURCE_* constants to the doc - splits the doc into thematical parts (Video, Image, Texture, and Filter Classes, Functions, Constants). Notes: - The parameter "mode" of ImageBuff.plot has to be described better. Actually, the whole set of IMB_BLEND_* constants (from IMB_imbuf.h) should be exposed to Python. I'll do that in a future diff, and complete the doc at the same moment (adding those IMB_BLEND_* constants to the Constants part of this doc). - The option of using webcams in VideoFFmpeg is still particularly not well documented. I am planning to make a proposal about fixing T18634 (and its corresponding TODO in the list) by integrating OpenCV in the BGE (and Blender?). The idea would then probably be to add a new class, f.ex. ImageWebcam, making this functionnality more specialized. So for now I don't think it is worth to document that part much. This patch fixes T44284 too. Reviewers: moguri, kupoman, campbellbarton, panzergame, lordloki Reviewed By: panzergame, lordloki Subscribers: hg1 Projects: #game_engine, #game_python, #documentation Maniphest Tasks: T44284 Differential Revision: https://developer.blender.org/D1352
2015-07-06 09:11:40 +00:00
Example of how to replace a texture in game with a video. It needs to run
everyframe.
"""
import bge
from bge import texture
from bge import logic
cont = logic.getCurrentController()
obj = cont.owner
# the creation of the texture must be done once: save the
# texture object in an attribute of bge.logic module makes it persistent
if not hasattr(logic, 'video'):
# identify a static texture by name
matID = texture.materialID(obj, 'IMvideo.png')
# create a dynamic texture that will replace the static texture
logic.video = texture.Texture(obj, matID)
# define a source of image for the texture, here a movie
movie = logic.expandPath('//trailer_400p.ogg')
logic.video.source = texture.VideoFFmpeg(movie)
logic.video.source.scale = True
# quick off the movie, but it wont play in the background
logic.video.source.play()
# you need to call this function every frame to ensure update of the texture.
2011-07-13 00:49:22 +00:00
logic.video.refresh(True)