diff options
author | Joe Crayne <joe@jerkface.net> | 2019-04-30 00:04:53 -0400 |
---|---|---|
committer | Joe Crayne <joe@jerkface.net> | 2019-04-30 00:04:53 -0400 |
commit | 2052faa3ffb11490e41972d65df54ae0bbef8b9c (patch) | |
tree | 6b987c5fd115af2b24c85bc2c373cda17948b4fd /hello_obj2.lc | |
parent | c9c0db44f79c5ad13c0937d8e36fa828447f9585 (diff) |
skybox shader code.
Diffstat (limited to 'hello_obj2.lc')
-rw-r--r-- | hello_obj2.lc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/hello_obj2.lc b/hello_obj2.lc index 52d4a52..db28333 100644 --- a/hello_obj2.lc +++ b/hello_obj2.lc | |||
@@ -7,6 +7,10 @@ blendplane = -- NoBlending -- BlendLogicOp Xor | |||
7 | ((OneBF,SrcAlpha),(DstAlpha,DstAlpha)) | 7 | ((OneBF,SrcAlpha),(DstAlpha,DstAlpha)) |
8 | (V4 0 0 0 0) | 8 | (V4 0 0 0 0) |
9 | 9 | ||
10 | point :: Vec 3 Float -> Vec 4 Float | ||
11 | point p = V4 p%x p%y p%z 1 | ||
12 | |||
13 | |||
10 | makeFrame (cubemap :: Texture) | 14 | makeFrame (cubemap :: Texture) |
11 | (skybox :: PrimitiveStream Triangle ((Vec 3 Float))) | 15 | (skybox :: PrimitiveStream Triangle ((Vec 3 Float))) |
12 | (cameraPosition :: Vec 3 Float) | 16 | (cameraPosition :: Vec 3 Float) |
@@ -18,6 +22,14 @@ makeFrame (cubemap :: Texture) | |||
18 | 22 | ||
19 | = imageFrame (emptyDepthImage 1, emptyColorImage (V4 0 0 0.4 1)) | 23 | = imageFrame (emptyDepthImage 1, emptyColorImage (V4 0 0 0.4 1)) |
20 | `overlay` | 24 | `overlay` |
25 | skybox | ||
26 | & mapPrimitives (\((p)) -> let texcoord = V3 p%x (p%y) (p%z) | ||
27 | p' = cam *. point (p + cameraPosition) | ||
28 | in (p', texcoord)) | ||
29 | & rasterizePrimitives (TriangleCtx CullNone PolygonFill NoOffset LastVertex) ((Smooth)) | ||
30 | & mapFragments (\((d)) -> ((texture2D (Sampler PointFilter MirroredRepeat cubemap) d%xy ))) | ||
31 | & accumulateWith (DepthOp Always False, ColorOp NoBlending (V4 True True True True)) | ||
32 | `overlay` | ||
21 | prims | 33 | prims |
22 | & mapPrimitives (\(p,n,uvw) -> ( coordmap cam p, V2 uvw%x (1 - uvw%y) )) | 34 | & mapPrimitives (\(p,n,uvw) -> ( coordmap cam p, V2 uvw%x (1 - uvw%y) )) |
23 | & rasterizePrimitives (TriangleCtx CullBack PolygonFill NoOffset LastVertex) ((Smooth)) | 35 | & rasterizePrimitives (TriangleCtx CullBack PolygonFill NoOffset LastVertex) ((Smooth)) |