Пример #1
0
 def onTick(self):
     debug.logOnSetUniform(False)
     self.updateGL()
Пример #2
0
 def onTick(self):
     debug.logOnSetUniform(False)
     self.updateGL()
Пример #3
0
import inspect, math, os.path

from sn.qt import *
from sn.gl import *
import sn.gl.geometry.t3d as T

import sn.gl.debug
debug.logOnSetUniform(True)

from sn.gl.geometry.pointgrid import V as PointGrid
from sn.gl.geometry.volume import D as DemoWidget


class KW8Widget(DemoWidget):
    def initializeGL(self):

        S = 100
        super().initializeGL('kw1.shaders', lambda program: PointGrid(program, S))

        self.eye = T.homogeneous(T.vec3(0.2, 1.1, 1.2))
        self.target, self.up = T.vec3(0.5, 0.6, 0.7), T.vec3(0, 1, 0)

        for p in [ GL_VERTEX_PROGRAM_POINT_SIZE, GL_CLIP_PLANE0, GL_BLEND ]:
            glEnable(p)
        self.program.u['pointsize'](800/S)
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    def paintGL(self):
        eye = T.cartesian(T.rotateY(np.pi /20 * self.time).dot(self.eye))
        self.View = T.lookat(eye, self.target, self.up)
        super().paintGL()
Пример #4
0
# kw1.pyはPointGridでモデルを構成した。kw1a.pyはPointsを用いている。実質的には同じ。

import inspect, math, os.path

from sn.qt import *
from sn.gl import *
import sn.gl.geometry.T3D as T

import sn.gl.debug

debug.logOnSetUniform(True)

from sn.gl.geometry.points import V as Points
from sn.gl.geometry.volume import D as DemoWidget


class KW1AWidget(DemoWidget):
    def points(self, S):
        vvals = np.array(range(S)) * 2. / (S - 1) - 1.
        return [(x, y, z) for x in vvals for y in vvals for z in vvals]

    def initializeGL(self):

        S = 100
        super().initializeGL('kw1.shaders',
                             lambda program: Points(program, self.points(S)))

        self.eye = T.homogeneous(T.vec3(0.2, 1.1, 1.2))
        self.target, self.up = T.vec3(0.5, 0.6, 0.7), T.vec3(0, 1, 0)

        for p in [GL_VERTEX_PROGRAM_POINT_SIZE, GL_CLIP_PLANE0, GL_BLEND]: