I was suffering from one basic misunderstanding: I did not get it that
samplers are indexed with normalized texture coordinates, i.e. 0..1.
(Note that multiplying a coordinate by any number does not break
anything horribly for this use case, looking up a pseudo-random
number, because textures by default repeat as a coordinate wraps.)
We multiply by 10 so that neighbouring pixels that map to close index
into the permTexture don't get clumped together with close sn values,
and thus same behaviour.
(Sure, the multiplication by 256 that I had changed it to worked, too,
but not the way my initial reasoning went... So let's use the original
10 to avoid somebody else thinking that we need to multiply by 256
because permTexture is built from a 256x256 array.)
(See 1877228ae8
)
Change-Id: I1d350446460fe2fdd3e55f00053a5ce01d2d117c
51 lines
1.7 KiB
GLSL
51 lines
1.7 KiB
GLSL
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*************************************************************************
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* This file is part of OpenOffice.org.
|
|
*
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
* only, as published by the Free Software Foundation.
|
|
*
|
|
* OpenOffice.org is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License version 3 for more details
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
* <http://www.openoffice.org/license.html>
|
|
* for a copy of the LGPLv3 License.
|
|
*
|
|
************************************************************************/
|
|
|
|
#version 120
|
|
|
|
uniform sampler2D leavingSlideTexture;
|
|
uniform sampler2D enteringSlideTexture;
|
|
uniform sampler2D permTexture;
|
|
uniform float time;
|
|
varying vec2 v_texturePosition;
|
|
|
|
float snoise(vec2 P) {
|
|
|
|
return texture2D(permTexture, P).r;
|
|
}
|
|
|
|
void main() {
|
|
float sn = snoise(10.0*v_texturePosition);
|
|
if( sn < time)
|
|
gl_FragColor = texture2D(enteringSlideTexture, v_texturePosition);
|
|
else
|
|
gl_FragColor = texture2D(leavingSlideTexture, v_texturePosition);
|
|
}
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|