python from panda3d.core import PointParticleFactory, LineParticleRenderer, SphereSurfaceEmitter, PointEmitter, ParticleSystem, ForceGroup particle_system = ParticleSystem() particle_renderer = LineParticleRenderer() particle_system.addRenderer(particle_renderer) particle_factory = PointParticleFactory() particle_system.addFactory(particle_factory) emitter = SphereSurfaceEmitter() emitter.setRadius(1.0) particle_system.addEmitter(emitter) force_group = ForceGroup() particle_system.addForceGroup(force_group) particle_factory.setLifespanBase(2.0) particle_factory.setLifespanSpread(0.5) particle_factory.setMassBase(1.0) particle_factory.setMassSpread(0.2) particle_factory.setTerminalVelocityBase(400.0) particle_factory.setTerminalVelocitySpread(50.0) particle_renderer.setHeadColor(Vec4(1.0, 0.5, 0.3, 1.0)) particle_renderer.setTailColor(Vec4(1.0, 0.2, 0.1, 0.0)) particle_renderer.setLineScaleFactor(4.0) particle_node = render.attachNewNode(particle_system) glsl #version 330 uniform mat4 p3d_ModelViewProjectionMatrix; in vec4 p3d_Vertex; in vec2 p3d_MultiTexCoord0; out vec2 texcoord; void main() { gl_Position = p3d_ModelViewProjectionMatrix * p3d_Vertex; texcoord = p3d_MultiTexCoord0; } glsl #version 330 uniform sampler2D p3d_Texture0; in vec2 texcoord; out vec4 fragColor; void main() { vec4 texColor = texture(p3d_Texture0, texcoord); fragColor = texColor * vec4(1.0, 0.8, 0.4, 1.0); } python from panda3d.core import Shader vertex_shader = Shader.load(Shader.SL_GLSL, "vertex_shader.glsl") pixel_shader = Shader.load(Shader.SL_GLSL, "pixel_shader.glsl") model = loader.loadModel("my_model.egg") model.setShader(vertex_shader) model.setShaderInput("p3d_Texture0", my_texture) model.setShader(pixel_shader)


上一篇:
下一篇:
切换中文