nevermind, figured it out
colrs=obj.uniforms[:color]
# Like this you get a reference to the gpu memory object (a texture in this
case)
color = map(x->Vec4(.1,.1,abs(x)/.05,1),vals)
update!(colrs,color)
On 2 Sep 2014, at 11:33 am, Sheehan Olver <[email protected]> wrote:
> How do I update the colors too?
>
>
> On 2 Sep 2014, at 9:09 am, Sheehan Olver <[email protected]> wrote:
>
>> Thanks, much much faster! To get it to work you have to do
>>
>> Pkg.add(“ApproxFun”);Pkg.checkout(“ApproxFun”);
>>
>> Below is the version that works for me. Is there support for non-evenly
>> spaced grids? I also want to do functions on a disk. (And cylinders and
>> spheres…not sure how to plot those though.)
>>
>>
>>
>>
>>
>>
>> using GLPlot, GLAbstraction, ModernGL, ApproxFun
>> window = createdisplay(w=1000,h=1000,eyeposition=Vec3(1,1,1), lookat=Vec3(0))
>>
>> function zcolor(i, j, t)
>> x = float32(i - 0.5)
>> z = float32(j - 0.5)
>> radius = sqrt((x * x) + (z * z))
>>
>> r = sin(10.0f0 * radius + t)
>> g = cos(10.0f0 * radius + t)
>> b = radius
>> return Vec4(r,g,b, 1)
>> end
>>
>> yy = xx =-1.:.05:1.
>> N = length(xx)
>> color = [zcolor(i/N, j/N, 15) for i=1:N, j=1:N];
>>
>>
>> h = 0.01
>> u0 = TensorFun((x,y)->exp(-10x.^2-20(y-.1).^2))
>> d = Interval()⊗Interval()
>> L = I-h^2*lap(d)
>> B = dirichlet(d)
>> S = schurfact([B,L],80)
>>
>> u = Array(TensorFun,10000)
>> u[1] = u0
>> u[2] = u0
>> n = 2
>>
>>
>> m = 500
>> vals = Float64[u[1][x,y] for x in xx,y in yy]
>> texdata=map(Vec1,vals)
>> obj = glplot(texdata, primitive=SURFACE(), color=color)
>> # this is probably a little opaque, but texdata ends up in :z, as :z is the
>> default attribute for the data you upload
>> zvalues = obj.uniforms[:z]
>> # Like this you get a reference to the gpu memory object (a texture in this
>> case)
>>
>> glClearColor(1,1,1,0)
>> for k=n+1:n+m
>> u[k] = (S\[zeros(4),2u[k-1]-u[k-2]])
>> vals = Float64[u[k][x,y] for x in xx,y in yy]
>> update!(zvalues, map(Vec1,vals)) # now you can simply update the gpu
>> object, which should be very efficient
>> glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
>> render(obj)
>> yield()
>> GLFW.SwapBuffers(window.glfwWindow)
>> end
>> n+=m
>>
>>
>>
>>
>>
>> On 2 Sep 2014, at 6:48 am, Simon Danisch <[email protected]> wrote:
>>
>>> Hi,
>>> glad to hear that you like my package!
>>> I'm surprised that your code works without being very slow, as you use my
>>> (a little confusing) API wrong ;)
>>> Here is a better version:
>>> https://gist.github.com/SimonDanisch/794c274fbf3090f00359
>>> I couldn't test the code, as some functions where missing!
>>>
>>> Best,
>>> Simon
>>>
>>>
>>> Am Dienstag, 19. August 2014 07:46:22 UTC+2 schrieb Sheehan Olver:
>>> Hi,
>>>
>>> Is there a way to force plotting in PyPlot.jl, to simulate animation?
>>> Right now if I do a for loop over a sequence of plots, it only outputs the
>>> last plot.
>>>
>>> This is in IJulia running on OS X with matplotlib version 1.3.1 installed,
>>> and pygui(true)
>>>
>>> Sheehan
>>
>