I've been working a lot with AGAL vertex and fragment shaders. I've got individual objects lit correctly (including specular shading) but I'd like to have objects cast shadows on OTHER objects. I have looked online, but I think most people working directly with AGAL have built custom Stage3D libraries and the shadow-casting solution doesn't seem to be in the public domain. Anyone willing to change that?
I'd like to know how to get an object to cast a shadow on another. I can't post what I've tried, because I can't get my head around where to begin on this problem. How would you pass the information (whether other objects are blocking the light) into another object's shader?
Thanks.
Shadow-casting shaders in Stage3D
371 Views Asked by moosefetcher At
1
There are 1 best solutions below
Related Questions in ACTIONSCRIPT-3
- [Actionscript]How to display the information inside an array of objects
- How to set a colour variable in JS
- When using INSERT OR REPLACE INTO in SQL is there any way to tell if a record was inserted as new or replaced in SQL for AS3?
- How to inject a bean in a view with Crux
- AS3 - Unable to resize Image width and height
- How do I move Pac-Man smoothly in AS3?
- Export Release Build is not working in Adobe Flash Builder, It does nothing on Finish button
- 1009 Error for a Character Skin Symbol in AS3
- Issue setting domain memory
- Implicit coercion of a value with static type Object to a possibly unrelated type Number
- Defer implementation of interface functions to child class
- Simple top 3 scores from an array to textfield
- Need ActionScript 3 coding for input boxes that will determine amount of color fill in a movieclip
- AS3 Caling MC on Parent Timeline from Child
- 2 error problems for simple music players
Related Questions in FRAGMENT-SHADER
- GLSL fragment shader: How do I prevent seams when sampling half of texture to repeat? (with mipmapping or linear filtering on)
- moderngl game of life doesn't update
- How to draw chart with high point density(>1 point per px) in Unity?
- webgpu transferring buffer from js doesnot unpack at right position
- How to create AGSL shader based animation effects with Jetpack Compose?
- Issues with Vertical Stretching and Horizontal Movement in Metal Shading Language Ray Tracing Shader
- GLSL "No Matching Overloaded Function Found" ( Palette)
- How should I read neighboring Texels in the Fragment Shader?
- Libgdx shader adjustment at runtime, how to update draw sprite after setting uniform value?
- Three.js "Fragment shader is not compiled" error when using flat shading
- reuse WebGLRenderTarget as material it gets zeroed and black
- Texture reflection on adjacent geometry surface
- make excel or csv file have pixels colors extracted from an image by the same order
- I'm trying to create a displacement map transition between three images using ThreeJs and I'm stuck
- GLSL frag shader outputting yellow color instead of gradient
Related Questions in VERTEX-SHADER
- WebGL Position vertex inside vertex shader?
- QOpenGLWidget with Qpainter: OpenGL drawing only visible after first paintGL call
- Why is outline calculation 1px less than it should be?
- Calculate TBN Matrix after modify position of vertex in vertex shader?
- Rotate UVs in Vertex Shader without distorting texture
- Texture reflection on adjacent geometry surface
- Primitive do not show up on screen
- Efficient way to draw a nice line using the Metal API
- I'm trying to create a displacement map transition between three images using ThreeJs and I'm stuck
- How to Implement ShaderToy in Threejs ShaderMaterial?
- How to use shader from ShaderToy in Three.js?
- THREEjs change shadows after vertex shader
- Godot vertex shader to bend a mesh along a path (similar to the Blender's "Curve" modifier)
- d3d12: when adding a constant buffer, the Output structure changes
- same JS code in 2 diiferent WebGL applications, works in 1 but fails in other: problem with vertexAttribute?
Related Questions in STAGE3D
- Memory allocation issue in Haxe using Enum as Map key type
- Hiding / clearing Stage3D on iOS hides 2D screen content - how can I get it to render 2D again?
- How to use Matrix3D.appendTranslation()?
- How to convert Vector to z rotation angle
- Inverting texture color with AGAL
- Formula to convert Local coordinates to world coordinates
- AS3 Rotate 3D object around point in space
- function that detects if a ray is intersecting an object
- Adobe AIR mobile applications unit testing integration tests test automations
- AGAL seq opcode works on hardware, but doesn't on software emulation (float number comparison is different on both?)
- Stage3D iOS Antialiasing on AIR 24
- How can I change the normals of my model so it will look less rounded
- Stage3D Error #3632: AGAL linkage: Varying 1 is read in the fragment shader but not written to by the vertex shader
- Stage3DProxy in a Worker
- Away3d - Error #3691: Resource limit for this resource type exceeded
Related Questions in AGAL
- Inverting texture color with AGAL
- AGAL seq opcode works on hardware, but doesn't on software emulation (float number comparison is different on both?)
- Pass position to fragment shader in AGAL
- Proper way to apply translation to vertices
- How do AGAL registers get added or subtracted when they 'contain' 3D vectors?
- minko bone animation with hardware support causes Error #3659: AGAL validation failed
- Gradient shadow for Starling extension for lighting
- How to draw a single-pixel width line in Stage3D
- Stage 3D - draw orbit lines 'mathematically'
- Why do AGAL shaders need to be compiled just-in-time?
- AGAL undocumented ops
- Render to texture not functioning
- Stage3D, AGAL - vertices' and textures' coordinate systems
- Stage3D function
- AGAL - Optcode NRM - normalize the vector to size 1 - why it is used?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
IT's called Deferred shading, you have to do 2 pass of vertex and fragment shaders. In the first pass you accumulate informations about distances, normals, occlusion... In the second pass you render and apply the informations of the first pass to make shadows.
Another options is ShadowMapping:
Basic shadowmap
The basic shadowmap algorithm consists in two passes. First, the scene is rendered from the point of view of the light. Only the depth of each fragment is computed. Next, the scene is rendered as usual, but with an extra test to see it the current fragment is in the shadow.
The “being in the shadow” test is actually quite simple. If the current sample is further from the light than the shadowmap at the same point, this means that the scene contains an object that is closer to the light. In other words, the current fragment is in the shadow.