Friday, September 16, 2011

Reflective water with GLSL, Part I

Being it for physical accuracy or setting mood in game, water and reflections are something that can add lot to your rendering engine. While true reflections can only be done with ray-tracing, one can achieve surprisingly nice approximations by using quite simple scene setup and some GPU programming.

Good water simulation should have at least the following features:
  • True reflection (with correct parallax)
  • Clipping of underwater objects on reflection image
  • View angle dependent transparency/reflectivity of water
  • Ripples and/or waves
  • Water scattering (i.e. water becoming gradually opaque as depth increases)
 Some more things, that can make things nicer but are not as visible, are:
  • Refraction
  • Caustics - i.e. light spots at the bottom of shallow water
  • Reflected light - i.e. light spots reflected to objects near water
At moment I have only implemented features from the first list into Khayyam/Sehle/Shinya code. You can look at my previous post for some in-engine images.
Here I will describe the mathematics behind the scenes and give step-by-step guide to writing your own water system/object/rendering pass.

1.Rendering reflection texture

Water without reflection looks totally uninteresting - just like any other semitransparent surface. Thus we start from implementing reflection and later go on to other effects.

1.1. Parallax
Even if you have until now managed to render you scene in single pass, from this point on you need at least two passes (actually at least N+1, where N is the number of visible reflective surfaces).

The reason is, that unfortunately we cannot recycle our main scene image for reflections. First because it could make view frustum insanely large (for example - if viewing the water surface from high angle we see only ground and water in our main view, but mostly sky in reflection). And second because of parallax. The reflection is unfortunately not the perfect copy of reflected scene, but copy of the view of the same scene from different viewpoint. The following image illustrates this.

A diagram explaining the parallax effect on reflected image

It means that you need to have rendering to texture set up and working. We will render reflection to texture and later use this texture while rendering the water surface in main scene.

Thus, to get reflection texture we first have to render our scene from the reflected camera viewpoint  P' to texture. First we have to find the reflected camera position - or more precisely the reflected view matrix (because we need camera orientation too in addition to the position).
This can be done with the following formula:

M'camera = Mreflection * Mcamera

Where Mreflection is the reflection matrix of mirror surface. It can trivially be calculated from the position of reflection plane:

              | 1-2Nx2   -2NxNy  -2NxNz  -2NxD |
Mreflection = |  -2NxNy 1-2Ny2   -2NyNz  -2NyD |
              |  -2NxNz  -2NyNz 1-2Nz2   -2NzD |
              |    0       0       0       1   |

Where (Nx,Ny,Nz,D) are the coefficients of plane equation (xNx + yNy + zNz + D = 0). Notice, that (Nx,Ny,Nz) is also the normal vector of given plane.

Mcamera is the transformation of camera as if it would be "normal" object in scene. To get ModelView matrix you will need the inverse of it.

1.2. Mirrored geometry
Actually we cheated a little in the previous image. We rotated the mirrored image 180º to make it more similar to the original image, so the effect of parallax can be seen. The actual mirrored image looks like this:
Different winding order on mirrored image
Notice, that the winding order of polygons in image is flipped on mirrored image - i.e. the triangle is oriented CCW on original but CW on reflection.

This may or may not be problem for you. If all your materials are double sided (i.e. you do not do back face culling) or if you can set up rendering pipeline in such a way, that you can change culling direction it is OK. In my case though, I prefer to keep culling always on and have forward-facing always defined as CCW. So something has to be done with the reflected image - or otherwise geometry will not render properly.

We will exploit the feature that camera is always (at least in most applications) rectangular and centered around view direction. Thus we can just flip camera in Y direction and the winding order will be correct again (it flips reflected image so it looks like (3) on the first picture).
This can be done with one more reflection matrix:

M''camera = Mreflection * Mcamera * Mflip

Where Mflip is simply another reflection matrix that does reflection over XZ plane.
Now if we render mirrored image using M''camera as camera matrix, pipeline can be left intact. We, of course, have to save this matrix for later reference, because it is needed to properly map our texture to water object in main render stage.

1.3. Underwater clipping
Take a look at the following picture:
A reflection with underwater object


We have added an underwater object Q to our scene. Now it should not appear on reflection, because it does not block the actual reflection rays PB'B and PA'A. But we are not doing ray-tracing. We are instead moving camera to mirrored viewpoint P' and rendering reflection like normal image. But as you can see, the object Q blocks ray P'A'A and thus would show up in our reflection.

Thus we have to make sure, that nothing that is under the reflection plane (water surface) will show up in mirror rendering. This can be achieved in three different ways:
  1. Use additional clipping plane on GPU. It can be very fast or very slow - depending on card and driver used.
  2. Use oblique projection matrix during reflection rendering. You can read more about it here. This is cool technique, but personally I have never got it to work well enough because it messes up camera far plane.
  3. Clip manually in pixel shaders. It wastes some GPU cycles, but is otherwise easy and foolproof.
I went with option (3) because oblique projection matrix did not seem to play well with wide camera angles (far plane moved through infinity creating all kinds of weird effects). The clipping itself is as easy as adding the following code at the beginning of all pixel shaders (or more precisely the ones that are used for reflectable objects):

uniform vec4 clip_plane;
varying vec3 interpolatedVertexEye;

void main()
{ 
    float clipPos = dot (interpolatedVertexEye, clip_plane.xyz) + clip_plane.w;
    if (clipPos < 0.0) {
        discard;
    }
...
}

Of course you have to supply your shader with clip_plane and calculate interpolatedVertexEye in vertex shader (it is simply vertex coordinate in view/eye space: VertexEye = Mmodelview * Vertex). If you do not need clipping, simply set clip_plane normal (xyz) to zero and all pixels will be rendered.

1.4. Putting it all together
Before starting the main render pass (being it forward or deferred) do the following:
  1. Create list of all objects that need reflections (and the parameters of all reflection planes). Then for each reflection plane:
  2. Calculate the reflected camera matrix
    M''camera = Mreflection * Mcamera
    * Mflip
  3. Set up camera matrices (you can optimize rendering by using clipped projection matrix, but this will not be discussed here).
  4. Set clipping plane to reflection plane
  5. Render full scene
  6. Save the rendered image as texture to be used with reflective object
If you are using HDR you should not tone-map reflection texture - unless you want to achieve some very specific effect.
2. Rendering reflective object

This is actually quite easy - provided that you have at hand all necessary parameters. You have still to decide at which render stage to do this. I use transparent stage, as water is basically just one semi-transparent surface in scene, but you can add another pass before or after transparency as well.

You will need at hand:
  • Reflected camera matrix M''camera
  • Projection matrix you used to render reflection Mprojectionreflection (normally this is the same projection that you use for main camera)
  • Reflection texture

2.1. Vertex shader

attribute vec3 vertex;

uniform mat4 o2v_projection;

varying vec3 interpolatedVertexObject;

void main()
{
	gl_Position = o2v_projection * vec4(vertex.xy, 0.0, 1.0);
	interpolatedVertexObject = vertex;
}

We add another constraint here - water surface will be at XY plane of the object local coordinate system. It is strictly not necessary if you have the proper reflection plane, but I found it easier that way. Just use XY plane as reflection plane and place your object (water body) appropriately.

Actually this allows us to do another cool trick. We can use the bottom of water body (i.e. river, lake..) as our water object. It will be flattened in shader, but we can use the Z data to determine the depth of water at given point. But more about this in next part. 

o2v_projection is simply my name for composite matrix Projection * ModelView. I prefer to name matrices with mnemonic names, describing the coordinate system transformations they do - in given case it is Object To View, multiplied with Projection. 

interpolatedVertexObject is simply vertex coordinate in object local coordinate system - we will need it to do lookup onto reflection texture.

2.2. Fragment shader

uniform mat4 o2v_projection_reflection;
uniform sampler2D reflection_sampler;

varying vec3 interpolatedVertexObject;

void main()
{
	vec4 vClipReflection = o2v_projection_reflection * vec4(interpolatedVertexObject.xy, 0.0 , 1.0);
	vec2 vDeviceReflection = vClipReflection.st / vClipReflection.q;
	vec2 vTextureReflection = vec2(0.5, 0.5) + 0.5 * vDeviceReflection;

	vec4 reflectionTextureColor = texture2D (reflection_sampler, vTextureReflection);

	// Framebuffer reflection can have alpha > 1
	reflectionTextureColor.a = 1.0;

	gl_FragColor = reflectionTextureColor;
}

o2v_projection_reflection is the composite matrix Projection * ModelView as it was used during reflection rendering. I.e:

Mprojectionreflection * (M''camera)-1 * Mobject

Like the name implies, it transforms from the object coordinate system to the clip coordinate system of reflection camera.

In fragment shader we simply repeat the full transform pipeline during reflection rendering and use final 2D coordinates for texture lookup. For this we need initial, untransformed object vertices - thus they are interpolated from vertex shader (interpolatedVertexObject).

I'll set reflection alpha to 1.0 because I use HDR buffers and due to additive blending the final alpha can have some very weird values there.

And the rendered image:

Simple scene from Shinya showing water as perfect mirror

Not very realistic?
Up to now we have implemented water as perfect mirror. This is very far from reality (look at the feature list in the first section).

In the next parts I will show how to add viewing angle based transparency, water color and depth-dependent ripples to your water.

Have fun!

161 comments:

  1. Hello, thanks a lot for this tutorial ! It was clear and it's the most up-to-date I could find :)

    However I've got a remark about this part for the reflected matrix :

    "M'camera = Mreflection * Mcamera"

    Using the GLM lib to handle the matrices, I got more luck using :

    "mat4 reflectedView = camera->viewMatrix * reflectionMat;"

    instead. Also, what about this line :
    "To get ModelView matrix you will need the inverse of it." ? I don't think any inverse was needed.

    Anyway I got my reflection working and I am heading to part ii :)

    ReplyDelete
  2. A big thank you from me as well. This explanation is the most comprehensive I found yet and it's helping me a lot on my own water rendering project.

    ReplyDelete
  3. While true reflections can only be done with ray-tracing, one can achieve surprisingly nice approximations by using quite simple scene setup and some GPU programming. Plumbing Judge

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. العاب بنات يحتوي موقعنا على تشكيلة من العاب تلبيس بنات متجددة باستمرار وكل مايتعلق بصنف العاب بنات تلبيس ومكياج والعاب طبخ ومرحبا بكم في العاب تلبيس
    العاب بنات و العاب تلبيس
    العاب طبخ al3ab-banat01

    ReplyDelete
  10. Pipeline construction temporary workers are occupied with work that includes the establishment, repair, or substitution of underground pipes. pipeline service provider

    ReplyDelete
  11. Very Nice Article to read. Blog articles helped me alot in many ways to find the good solution. Am very happy to comments here. Thanks for sharing this kind of wonderful article in this blog. Lovely ! CCTV Camera Supplier MATRIX dealers

    ReplyDelete
  12. While it is past the extent of this article to talk about each framework, a couple of proposals can be tended to. Each HVAC framework part has expanded in proficiency throughout the years. heating repair somers

    ReplyDelete
  13. This can prompt maltreatment as the expert in your home turns out to be all the more a salesperson rather than a plumber. southbury plumber

    ReplyDelete
  14. Thanks for sharing this blog, this blog is very helpful information for every one.

    ReplyDelete
  15. This comment has been removed by the author.

    ReplyDelete
  16. The class today has become the happiest person I managed to find a part-time job at home and I really get interesting?
    fine no deposit bonus casinolist you can not thank

    ReplyDelete
  17. We are a well-reputed and elite independent escort services in Gurgaon, who offers top notch services for esteemed gentlemen who never settle down for just fine, but seek the ultimate
    Gurgaon Escorts Agency
    Independent Female Escorts in Gurgaon

    ReplyDelete
  18. Hiring packers and movers in Gurgaon is not too hard if you take help of the best moving professionals. Best movers and packers Gurgaon assist with their skilled and trained team to pack, load, unload and unpack your belongings.
    So be aware and hire the best mover packer to save your valuables.
    packers and movers Gurgaon
    packers and movers Gurgaon Charges

    ReplyDelete
  19. Your article had provided me with another point of view on this topic. I had absolutely no concept that things can possibly work on this manner as well. Thank you for sharing your opinion

    cara mengatasi sembelit berkepanjangan secara alami
    obat rematik pada kaki alami
    obat nyeri tulang pinggang yang ampuh dan aman
    cara menurunkan trombosit tinggi dengan cepat

    ReplyDelete
  20. Our Delhi Escorts allow you to fly on our Independent connections. You can have short
    time relationships here.Why delay, start your journey to seek heavenly.

    ReplyDelete

  21. Kasauti Zindagi Ki is a Hindi language Desi serial of Hotstar.
    Star Plus of 2017. This serial got huge fame in 2019 and still its on top.

    Nazar 2 Online

    ReplyDelete
  22. We are qualified and licensed moving services dubai Company that provide all types of moving services within a limited time. We offering packaging, unpackaging, loading, unloading, warehousing and many others. Our expert teams provide a complete solution with cost estimates because we think customer satisfaction is very important thing for us. So don’t worry about it moving charge.

    ReplyDelete
  23. Air conditioning cleaning company in Al-Ahsa makes you receive the summer and air-conditioner with high efficiency and excellent, as it is known that air-conditioners in the summer and in the Kingdom of Saudi Arabia in particular cannot be dispensed with due to the high temperatures, so our company provides the best level of air-conditioning cleaning service so that it works with good efficiency, The company also provides maintenance services and provision of damaged spare parts with original and branded ones. The company also provides all its services through a team of technicians and specialists who have long experience in this field, in addition to the company's competitive and distinguished prices, with u Katana will find all of the services that belong to the highest quality Macaivk and the required level and the lowest prices on the market, ask our services now
    شركة تنظيف مكيفات بالاحساء تجعلك تستقبل شهر الصيف ومكيفك بكفاءة عالية وممتازة، فكما هو معروف أن المكيفات في فصل الصيف وفي المملكة العربية السعودي بصفة خاصة لا يمكن الاستغناء عنها بسبب ارتفاع درجات الحرارة، لذلك تقدم شركتنا أفضل مستوى من خدمة تنظيف المكيفات حتى تعمل بكفاءة جيدة، كما تقوم الشركة أيضًا بتقديم خدمات الصيانة وتوفير قطع الغيار التالفة بأخرى أصلية ومن ذات العلامة التجارية، كما تقوم الشركة بتقديم كل خدماتها عن طريق فريق من الفنيين والمتخصصين الذين لديهم خبرة طويلة في هذا المجال، هذا فضلاً عن أسعار الشركة المتميزة والتنافسية، فمع شركتنا سوف تجد كل الخدمات التي تخُص مكيفك بأعلى جودة وبالمستوى المطلوب وأقل الأسعار الموجودة في السوق، اطلب خدماتنا الآن ولا تتردد فشركتنا هي ساعدك الأيمن للحصول على مكيف نظيفًا وبكفاءة ممتازة.
    المصدر:-
    https://www.rukn-altatawer.com/
    شركة تنظيف مكيفات بالاحساء
    شركة غسيل مكيفات بالاحساء
    تنظيف مكيفات بالاحساء
    شركة تعقيم بالاحساء
    شركة تنظيف بالرياض

    ReplyDelete
  24. This comment has been removed by the author.

    ReplyDelete
  25. Hire sexy Call girls in Guwahati or Escorts in Guwahati for incall or outcall Escort services in Guwahati hotels from Diya roy #No.1 premier escort agency. We have 1500+ Guwahati call girls profiles and independent Guwahati call girls for providing 24x7 escort services.

    ReplyDelete
  26. visits our site for news and much more. MixTvNews

    ReplyDelete
  27. شركة تنظيف في ام القيوين موجودة الآن ويمكن لأي عميل يبحث عن شركة الأمين الإماراتية أن يتصل بنا؛ شركتنا ستتفق معك علي ميعاد للتنظيف ويكون موظفيها في المكان في الوقت المحدد تماماً.

    يمكنك الإعتماد علينا في أي نوع من أنواع التنظيف؛ يطلبنا العملاء في أي مكان ولكل مكان قواعد التنظيف الخاصة به.

    عند اتصالك بالشركة يمكنك السؤال والإستفسار كما تريد ويمكنك التعرف علي أي بيانات تخص الشركة؛ يرد عليك موظفين خبراء علي الفور يعرفون تساؤلات العميل وما يحتاجه.

    نعلم أنه يوجد العديد من شركات التنظيف الآن ولكل شركة طريقتها في إبهار العميل؛ ولذلك يجب أن تعلم معلومات أكثر لتختار الشركة الأنسب لك وتقوم بإستدعائها؛ تابع لتعرف أكثر عن شركة الأمين الإماراتية وما يجعلها الأفضل!

    شركة تنظيف منازل ام القيوين
    شركة تنظيف منازل ابوظبي
    شركة تنظيف منازل الشارقة
    شركة تنظيف منازل العين
    شركة تنظيف منازل الفجيرة
    شركة تنظيف منازل دبي
    شركة تنظيف منازل رأس الخيمة
    شركة تنظيف منازل عجمان

    ReplyDelete
  28. شركة تنظيف في ام القيوين موجودة الآن ويمكن لأي عميل يبحث عن شركة الأمين الإماراتية أن يتصل بنا؛ شركتنا ستتفق معك علي ميعاد للتنظيف ويكون موظفيها في المكان في الوقت المحدد تماماً.

    يمكنك الإعتماد علينا في أي نوع من أنواع التنظيف؛ يطلبنا العملاء في أي مكان ولكل مكان قواعد التنظيف الخاصة به.

    عند اتصالك بالشركة يمكنك السؤال والإستفسار كما تريد ويمكنك التعرف علي أي بيانات تخص الشركة؛ يرد عليك موظفين خبراء علي الفور يعرفون تساؤلات العميل وما يحتاجه.

    نعلم أنه يوجد العديد من شركات التنظيف الآن ولكل شركة طريقتها في إبهار العميل؛ ولذلك يجب أن تعلم معلومات أكثر لتختار الشركة الأنسب لك وتقوم بإستدعائها؛ تابع لتعرف أكثر عن شركة الأمين الإماراتية وما يجعلها الأفضل!

    شركة تنظيف منازل في دبي
    شركة تنظيف منازل في ابوظبي
    شركة تنظيف منازل في الشارقة
    شركة تنظيف منازل في ام القيوين
    شركة تنظيف منازل في العين
    شركة تنظيف منازل في الفجيرة
    شركة تنظيف منازل في رأس الخيمة
    شركة تنظيف منازل في عجمان

    ReplyDelete
  29. شركة تنظيف في ام القيوين موجودة الآن ويمكن لأي عميل يبحث عن شركة الأمين الإماراتية أن يتصل بنا؛ شركتنا ستتفق معك علي ميعاد للتنظيف ويكون موظفيها في المكان في الوقت المحدد تماماً.

    يمكنك الإعتماد علينا في أي نوع من أنواع التنظيف؛ يطلبنا العملاء في أي مكان ولكل مكان قواعد التنظيف الخاصة به.

    عند اتصالك بالشركة يمكنك السؤال والإستفسار كما تريد ويمكنك التعرف علي أي بيانات تخص الشركة؛ يرد عليك موظفين خبراء علي الفور يعرفون تساؤلات العميل وما يحتاجه.

    نعلم أنه يوجد العديد من شركات التنظيف الآن ولكل شركة طريقتها في إبهار العميل؛ ولذلك يجب أن تعلم معلومات أكثر لتختار الشركة الأنسب لك وتقوم بإستدعائها؛ تابع لتعرف أكثر عن شركة الأمين الإماراتية وما يجعلها الأفضل!

    شركة تنظيف كنب في ابوظبي
    شركة تنظيف كنب في أم القوين
    شركة تنظيف كنب في الشارقة
    شركة تنظيف كنب في العين
    شركة تنظيف كنب في الفجيرة
    شركة تنظيف كنب في دبي
    شركة تنظيف كنب في رأس الخيمة
    شركة تنظيف كنب في عجمان

    ReplyDelete
  30. شركة تنظيف في ام القيوين موجودة الآن ويمكن لأي عميل يبحث عن شركة الأمين الإماراتية أن يتصل بنا؛ شركتنا ستتفق معك علي ميعاد للتنظيف ويكون موظفيها في المكان في الوقت المحدد تماماً.

    يمكنك الإعتماد علينا في أي نوع من أنواع التنظيف؛ يطلبنا العملاء في أي مكان ولكل مكان قواعد التنظيف الخاصة به.

    عند اتصالك بالشركة يمكنك السؤال والإستفسار كما تريد ويمكنك التعرف علي أي بيانات تخص الشركة؛ يرد عليك موظفين خبراء علي الفور يعرفون تساؤلات العميل وما يحتاجه.

    نعلم أنه يوجد العديد من شركات التنظيف الآن ولكل شركة طريقتها في إبهار العميل؛ ولذلك يجب أن تعلم معلومات أكثر لتختار الشركة الأنسب لك وتقوم بإستدعائها؛ تابع لتعرف أكثر عن شركة الأمين الإماراتية وما يجعلها الأفضل!

    شركة تنظيف كنب ابو ظبي
    شركة تنظيف كنب ام القيوين
    شركة تنظيف كنب الشارقة
    شركة تنظيف كنب العين
    شركة تنظيف كنب الفجيرة
    شركة تنظيف كنب دبي
    شركة تنظيف كنب رأس الخيمة
    شركة تنظيف كنب عجمان

    ReplyDelete
  31. We have experienced workers for the House painting service in Dubai, Room painting service, and Living room painting service. If you need a House painting service, an interior painting company, and an Outdoor house painting service? Just contact our Eagle Technical services LLC for a House painting service.

    ReplyDelete
  32. Really, I appreciate your blog and ideas related to Blog topics. Thank you for sharing your idea. keep sharing bro. I hope we get new updates related to the blog.
    Mumbai Call Girls

    ReplyDelete
  33. AH MOVERS is the movers and packers dubai, packers movers dubai service providers in Dubai that has extensive knowledge and experienced.

    ReplyDelete
  34. BUDGET CITY MOVERS is one of the most popular companies in Dubai. We can provide you well trained and capable moving teams for Movers in Dubai, Movers and Packers Dubai, Dubai movers and packers, Dubai movers, Packers and movers Dubai, and House movers in Dubai. For any requirement just connect with us to get the effective packers movers service in your budget as well as in your locality. call us: 055 6254 802

    ReplyDelete
  35. The Kapil Sharma Show Sony Tv Full Episodes Watch Online, The Kapil Sharma Show Inidan Comdey Show Live SonyLiv Today Episode HD. The Kapil Sharma Show

    ReplyDelete
  36. Indian Idol Sony Tv Show Online Full Episodes Video, Indian Idol Sony Tv Show Live in SonyLiv,Indian Idol Sony Tv Show Watch Online. Indian Idol

    ReplyDelete
  37. Yeh Rishta Kya Kehlata Hai Hindi Serial Watch Online Today Episode Yeh Rishta Kya Kehlata Hai

    ReplyDelete
  38. Anupama Hindi Serial Watch Online Today Episode HD on HotStar.Anupama.

    ReplyDelete
  39. Watch Yeh Hai Chahatein Star Plus Desi Serial Full Episode Online,Yeh Hai Chahatein

    ReplyDelete
  40. Watch Pandya Store Star Plus Serial HD Episodes Video, Pandya Store HotStar Serial Watch Online Today Episode In High Quality Pandya Store

    ReplyDelete
  41. K DramaCool Shows English Sub Full HD,KDrama

    ReplyDelete
  42. Kyun Utthe Dil Chhod Aaye Sony Tv Serial Watch Online, Kyun Utthe Dil Chhod Aaye Sonyliv Full Episode Video HD Free Download.Kyun Utthe Dil Chhod Aaye

    ReplyDelete
  43. Bawara Dil​ Colors Tv Desi Tv Serial Watch Online Today Episode in HD by Voot, Bawara Dil​ Drama Serial Episode Full Video HD.Bawara Dil

    ReplyDelete
  44. Watch Ishq Mein Marjawan 2 Live Voot Show Full Episodes Online.The Series Which Will Be Premier On Ishq Mein Marjawan Full Episode. Ishq Mein Marjawan

    ReplyDelete
  45. K DramaCool Shows English Sub Full HD,KDrama

    ReplyDelete
  46. cool, please guidance so that I can create a blog like yours

    ReplyDelete
  47. Taiwanese, Hong Kong,Thailand and Chinese with English subtitles. WatchAsian

    ReplyDelete
  48. Watch K Drama Online Free in High Quality,KissAsian

    ReplyDelete
  49. Asian Drama Online Eng Sub, Watch Video and Download free Asian Dramas, WatchAsian

    ReplyDelete
  50. Watch Aapki Nazron Ne Samjha Star Plus Serial Episodes Full Video Online,Aapki Nazron Ne Samjha. Aapki Nazron Ne Samjha Hotstar Dest Tv Serial Today Episode in HD

    ReplyDelete
  51. Watch Kuch Toh Hai: Naagin Ek Naye Rang Mein Colors Tv Serial Video All Episodes Online. Kuch Toh Hai is An Indian Television Series. The Series Which Will Be Premier On 7th February 2021 at 8:00 PM (IST).Kuch Toh Hai
    Kuch Toh Hai Cast: Harsh Rajput, Krishna Mukherjee.

    ReplyDelete
  52. Kyun Utthe Dil Chhod Aaye Sony Tv Serial Watch Online, Kyun Utthe Dil Chhod Aaye Sonyliv Full Episode Video HD Free Download.Kyun Utthe Dil Chhod Aaye

    ReplyDelete
  53. Apna Time Bhi Aayega Zee TV Drama Serial from Zee5 Full Episodes Video. Apna Time Bhi Aayega is ZEE5 Channel Series. The Series Which Will Be Premier On 20th October 2020 Monday to Sunday at 7:00 PM (IST). Apna Time Bhi Aayega
    Apna Time Bhi Aayega Cast: Fahmaan Khan, Anushka Sen, Pratish Vor.

    ReplyDelete
  54. Watch Pinjara Khubsurti Ka Desi Serial Colors Tv Episode Full Video. Pinjara Khubsurti Ka is An Indian Television Series. The Series Which Will Be Premier On 24th August 2020 at 9:00 PM (IST).Pinjara Khubsurti Ka
    Pinjara Khubsurti Ka Cast: Bhoomika Mirchandani, Shivangi Sharma, Sahil Uppal.

    ReplyDelete
  55. The great website and information shared are also very appreciable. Kenosha Kickers Jacket

    ReplyDelete
  56. Watch Ghum Hai Kisi Ke Pyar Mein Star Plus All HD Episodes Online. HotStar Ghum Hai Kisi Ke Pyar Mein is An Indian Television Series. The Series Which Will Be Premier On 5th October 2020 Mon-Sat at 08:00 PM (IST).BGhum Hai Kisi Ke Pyar Mein
    Ghum Hai Kisi Ke Pyar Mein Cast: Neil Bhatt, Aishwarya Sharma, Ayesha Singh, Shailesh Datar, Sanjay Narvekar.

    ReplyDelete
  57. Watch Khatron Ke Khiladi 11 – Made In India Colors Tv Serials Video Episode. Khatron Ke Khiladi – Made In India is an Indian reality and stunt television series. The Series Which Will Be Premier On 1st August 2020 Sat-Sun at 9:00 PM (IST). Khatron Ke Khiladi
    Khatron Ke Khiladi 11 – Made In India Host: Rohit Shetty.

    ReplyDelete
  58. Watch Kuch Toh Hai: Naagin Ek Naye Rang Mein Colors Tv Desi Serial Full Video Episodes. Kuch Toh Hai is An Indian Television Series. The Series Which Will Be Premier On 7th February 2021 at 8:00 PM (IST). Kuch Toh Hai
    Kuch Toh Hai Cast: Krishna Mukherjee, Harsh Rajput.

    ReplyDelete
  59. http://www.milena.co.in/hinjewadi-escorts.html |
    http://www.milena.co.in/lonavala-escorts.html |
    http://www.milena.co.in/koregaon-park-escorts.html |
    http://www.milena.co.in/vimannagar-escorts.html |
    http://www.milena.co.in/baner-escorts.html |


    http://www.milena.co.in/wakad-escorts.html |
    http://www.milena.co.in/katraj-escorts.html |
    http://www.milena.co.in/ravet-escorts.html |
    http://www.milena.co.in/aundh-escorts.html |
    http://www.milena.co.in/siliguri-escorts.html |

    ReplyDelete
  60. http://www.newvine.biz/salt-lake-escort-service.html |
    http://www.newvine.biz/dum-dum-escort-service.html |
    http://www.newvine.biz/barasat-escort-service.html |
    http://www.newvine.biz/new-town-escort-service.html |
    http://www.newvine.biz/rajarhat-escort-service.html |


    http://www.newvine.biz/barrackpore-escort-service.html |
    http://www.newvine.biz/naihati-escort-service.html |
    http://www.newvine.biz/siliguri-escort-service.html |
    http://www.milena.co.in/coimbatore-escorts.html |
    http://www.milena.co.in/kochi-escorts.html |

    ReplyDelete
  61. Watch Your Mehndi Hai Rachne Wali Desi Drama Tv Serials Online Kuch Toh Hai

    ReplyDelete
  62. Watch Shaurya Aur Anokhi Ki Kahani Star Plus Serial Full Episode Online. Shaurya Aur Anokhi ki Kahani is An Indian Television Series. The Series Which Will Be Premier On 21st December 2020 at 7:00 PM (IST). Shaurya Aur Anokhi ki Kahani
    Shaurya Aur Anokhi ki Kahani Cast: Debattama Saha, Karanvir Sharma.

    ReplyDelete
  63. Watch Sasural Simar Ka 2 Desi Serial Full Video all Episodes Voot. Sasural Simar Ka 2 is An Indian Television Series. The Series Which Will Be Premier On 12th April 2021 at 9:00 PM (IST).Sasural Simar Ka

    ReplyDelete
  64. Tik Tok Version 1.0.1 APK MOD bahot achi app hy
    https://apkmodonline.net/tik-tok-mini-1-0-1-apk-mod/

    ReplyDelete
  65. Garena Free Fire The Cobra Version 1.59.5 APK Mod bahot achi game hy
    https://apkmodonline.net/garena-free-fire-the-cobra-version-1-59-5-apk-mod/

    ReplyDelete
  66. Great information about wilderness for beginners giving the opportunity for new people.
    Shawn Mendes Leather Jacket

    ReplyDelete
  67. Bigg Boss 15 Will on air from 15th October 2021, this time contestant will include the
    celebrities and common person both as well, this show trp will high as previous one.

    Bigg Boss 15 Online

    ReplyDelete
  68. Update Serial from .Channel Series Online.Desi Channel Drama Serial.Complete Show Full Episodes in HD.https://desichannel.su/Hindi Series Today Episode Latest Show.

    ReplyDelete
  69. Update Serial from .Channel Series Online.Desi Channel Drama Serial.Complete Show Full Episodes in HD.https://desichannel.su/Hindi Series Today Episode Latest Show.

    ReplyDelete
  70. شركة هندسية صناعية /
    : أنواعها، ومكوناتها والفرق بينها وبين غلايات المياه الساخنة.
    الغلايات البخارية هي نوع من انواع المبادلات الحرارية التي تعتمد على انتقال الحرارة من اللهب الى الماء، حيث يتم تسخينُه إلى درجة الغليان، فينتج عن ذلك بخار، يُستخدم البخار الناتج في كثير من الأغراض الصناعية، ومحطات توليد الطاقة، والتدفئة المركزية للمنشئات.
    انواع الغلايات:
    1- غلايات مواسير اللهب FIRE TUbE وهى الغلايات التى تعتمد فى عملها بان يكون اللهب بداخل المواسير والمياه فى الحيز الخارجى بين المواسير.
    2- غلايات مواسير المياه water tube وهى الغلايات التى تعتمد فى عملها بان يكون اللهب خارج المواسير فى الحيز الخارجى وحولها والمياه داخل المواسير.
    3- غلايات رأسية وافقية وذلك من حيث محور وضع جدار الغلاية للارض vertical &horizontal boilers
    4- غلايات طبقا للوقود المستخدم ( مازوت - سولار - غاز طبيعى ).
    مكونات أنظمة الغلايات البخارية:
    يتكون تصميم المرجل من 3 مكونات رئيسية:
    1. نظام تغذية المياه:
    نوعان، نظام تغذية مغلق ونظام تغذية مفتوح، ودوره الأساسي تنظيم دورة الماء المراد تحويله إلى بخار.
    2. نظام البخار:
    هو النظام الرئيسي في المرجل ومسؤول عن التحكم وجمع البخار المتولد من تلك العملية
    3. نظام الوقود:
    يتوقف علي نوع الوقود المستخدم:
    الوقود الصلب: ويشمل عدة أشياء منها الفحم والخشب وفحم الكوك وقشر الأرز وقوالب الفحم.
    الوقود السائل: يشمل زيت الفرن وزيت الديزل الخفيف.
    الوقود الغازي: يشمل سوائل الغاز الطبيعي والغاز الطبيعي المسال، والغاز الطبيعي بالأنابيب.

    الفرق بين الغلايات البخارية و شركة تصنيع معدات هندسية /:
    يمكن أن يستخدم كلا النوعين من الغلايات الغاز أو الكهرباء أو الزيت لتوليد الطاقة. إضافة إلى ذلك، كلاهما يستخدم الماء الساخن كمصدر رئيسي للحرارة. ومع ذلك، فإن كيفية توليد الحرارة هو ما يميزهم:

    تعمل الغلاية البخارية على تسخين الماء إلى درجة الغليان من أجل توليد البخار. بعد ذلك، ينتقل البخار عبر شبكة من الأنابيب إلى المشعات حول منزلك. من ناحية أخرى، تقوم غلاية الماء الساخن بتسخين الماء حتى يسخن بدرجة كافية. ثم يدفع الماء الساخن عبر شبكة مماثلة من الأنابيب إلى المشعات. عندما يتكثف البخار أو يبرد الماء، فإنه يعود إلى الغلاية ويعاد تسخينه.
    صيانة الغلايات:
    تعد الصيانة الدورية أمرًا بالغ الأهمية لضمان بقاء نظام المرجل موثوقًا وآمنًا وفعالًا.إن اتباع جدول الصيانة المنتظم لغلايتك البخارية، سيؤدي إلي تقليل الأعطال وانقطاع الخدمة، فيما يلي توصيات للمهام اليومية والأسبوعية والشهرية ونصف السنوية والسنوية. كما هو الحال دائمًا، اتبع توصيات الشركة المصنعة للصيانة الروتينية واحتفظ بسجل سجل الغلايات يوميًا.
    أسباب انفجار الغلايات البخارية:
    1- انخفاض مستوى المياه في المرجل.
    2- زيادة تسخين بعض الأجزاء المعدنية المعرضة للهب.
    3- عيوب اللحامات أو الخامات المستخدمة للغلاية.
    4- وجود تكلسات بطبقة سميكة على جدار المرجل.
    5- وجود نسبة عالية من الحديد في مياه الغلاية مما يساعد على تآكل الجسم
    و لتفادي حدوث الانفجار لابد من أتباع عدة خطوات و منها عدم تغذية الغلاية بمياه باردة أثناء عملها وهى ساخنة، لأن التغيرات المفاجئة في درجات الحرارة تؤدى إلى تأكل بدن الغلاية و مواسير اللهب، و أيضا من الخطوات المهم أتخاذها فحص خط الوقود و ما بها من صمامات و أن تكون تعمل بشكل صحيح من دون تسريب.

    ReplyDelete
  71. google lead me here really nice post keep on doind good work
    MTV Splitsvilla 13

    ReplyDelete
  72. Watch Kuch Rang Pyar Ke Aise Bhi All Episodes Video Full Online, Kuch Rang Pyar Ke Aise Today Episodes Ony Sony Tv and SonyLiv in High Quality.

    ReplyDelete
  73. Watch Kuch Rang Pyar Ke Aise Bhi Sony Tv Serial Full Episode HD Online, Kuch Rang Pyar Ke Aise Bhi Serial Today Episode on SonyLiv Free Video. . Kuch Rang Pyar Ke Aise Bhi

    ReplyDelete
  74. Watch The Big Picture Reality Game Show Latest Episode Video, The Big Picture is a Ranveer Singh unique quiz game show that will give audience a chance. The Big Picture

    ReplyDelete
  75. Watch Zindagi Mere Ghar Aana Serial Today Episodes Video Online HD, Zindagi Mere Ghar Aana Full Episodes By Star Plus and Hotstar.

    ReplyDelete
  76. Mtv Roadies Danger House India Hindi Tv Show Watch Episodes Video, Mtv Roadies Danger House Show by Voot Online Desit Hindi Serial Today Episode by MTV. MTV Roadies

    ReplyDelete
  77. Watch your favourite Asian Drama Online for free releases in Korean, Taiwanese, Hong Kong, Thailand, Japanese, and Chinese with English Subtitles, Watch Dramacool Eng Sub, Watch drama asian Online for free releases in Korean, Taiwanese, Hong Kong, Thailand, Japanese, and Chinese with English subtitles. DramaCool : Watch Asian Dramas and Movies or KShow Online in English Sub

    ReplyDelete
  78. Udaariyaan Colors Tv Hindi Serial HD Episodes Video, Voot Drama Watch Online Today Episode In High Quality

    ReplyDelete
  79. Watch Thapki Pyar Ki Colors Tv Desi Serial Tv Show Full HD Episodes Video, Thapki Pyaar Ki Serial by Voot, Today Episode Online Free Download. Thapki Pyar Ki

    ReplyDelete
  80. Watch anime online in English. GogoAnime, watch anime, anime online, free anime, english anime, sites to watch anime You can watch free series and movies online and English subtitleGogoAnime

    ReplyDelete
  81. Mehndi Hai Rachne Wali is Star Plus & Hotstar started newly launched Drama Serial
    Raghav puts necklace on Kirti, Kirti thanks Pallavi, Pallavi says thank Raghav

    Ghum Hai Kisi Ke Pyar Mein

    ReplyDelete
  82. It was not first article by this author as I always found him as a talented author. Squall Leonhart Jacket

    ReplyDelete

  83. Kasam Tere Pyar Ki 2 (KTPK 2) is all set to steal our hearts, yet again, on the Colors TV channel.

    Kasam Tere Pyaar Ki season 2 will release on January 2022, was a super-hit romantic Hindi TV serial.

    Yeh Rishta Kya Kehlata Hai

    ReplyDelete
  84. Watch Pinoy Flix Full Episode we Provide Pinoy Tambayan and Pinoy Teleserye Lambingan HD Quality Shows enjoy Pinoy Tv pinoyflix pinoy Channel Tv Online Free

    ReplyDelete
  85. Put more informative things on this blog page, and thanks for sharing this. Chris Evans Knives Out Coat

    ReplyDelete
  86. provides the quality service of customized fiber connections in the case of large businesses and government entities. spiderman hoodie

    ReplyDelete
  87. This is very informative and interesting article.
    I have enjoyed reading your post and have come to the conclusion that you are a professional writer.
    reviews

    ReplyDelete
  88. Colors TV has recently launched romantic drama serial, Sirf Tum
    Sirf Tum drama

    ReplyDelete
  89. This is an excellent post I seen thanks to share it. It is really what I wanted to see hope in future you will continue for sharing such a excellent post. Thank

    ReplyDelete
  90. با وجود دقت بالای سیستم‌های کامپیوتری بر بازار و وجود انبوهی از اندیکاتورها، سم سیدن به لطف استراتژی عرضه و تقاضا
    ، از تحلیل تکنیکال سنتی اجتناب می‌کند. او برخلاف بسیاری از معامله‌گران این حوزه، رویکرد تقریبا ساده‌ای جهت تحلیل بازار دارد و اصلا در معاملات خود به اندیکاتورها، اسیلاتورها، بیانیه‌های بانک‌های مرکزی و سایر عواملی که معامله‌گران انتظار دارند که روی قیمت تاثیر داشته باشد، توجهی ندارد؛ زیرا آن‌ها را عامل زیان اکثریت معامله‌گران می‌داند.

    ReplyDelete
  91. download and enjoy the latest version of

    ReplyDelete
  92. Dramacool is the place where you can watch Korean drama, Kshows and other Asian dramas with english subtitles Dramacool

    ReplyDelete
  93. افضل شركة نقل اثاث وعفش في دبي سلس ورخيص من خلال افضل شركات نقل وتخزين الاثاث في الامارات
    نقل اثاث الشارقة ابوظبي العين الفجيرة
    شركة نقل اثاث دبي
    نقل وشحن اثاث دبي
    نقل اثاث دبي
    نقل اثاث الشارقة

    ReplyDelete
  94. DramaNice.net is a Completely Best Free Website, Get you All Dramas and movies as well as TV shows here.




     DramaNice 

    ReplyDelete
  95. watch video naagin series full H
    D onlin

    ReplyDelete
  96. Watch your favorite Pinoy TV Channel, Pinoy Tambayan, Pinoy Teleserye Replay, Pinoy TV and Pinoy TV Shows HD Quality video Epiosde online for free.https://lambingantvtambayan.su/

    ReplyDelete
  97. Enjoyed Watching your post keep sharing such amazing post will come back to Watch more.
    Bigg Boss 16

    ReplyDelete
  98. Hi I found here very Good Information thanks so much for sharing
    Pandya Store 3rd December 2022 Episode 597

    ReplyDelete

  99. I am satisfied with the arrangement of your post.

    ReplyDelete
  100. You are really a talented person I have ever seen.

    ReplyDelete
  101. Thanks for sharing such a valuable features and other relevant information.

    ReplyDelete
  102. This excellent website truly has all of the info I wanted concerning this subject and didn’t know who to ask

    ReplyDelete
  103. Thank you for the good information you share with us.

    ReplyDelete
  104. I am satisfied that you simply shared this useful info with us.

    ReplyDelete
  105. I have a presentation subsequent week, and I’m at the search for such info."

    ReplyDelete
  106. Bespoke Hardware supply bespoke oak doors, frames, barn doors, stable doors both interior & exterior across the UK, North Yorkshire, Stokesley, Great Ayton. Visit Website for oak door lining kit Door We are available 24/7

    ReplyDelete
  107. Property management can be conducted by individual property owners, but it's also common for property owners to hire professional hmo agent companies to handle these responsibilities. These firms have the expertise and resources to efficiently manage one or multiple properties, allowing property owners to focus on other aspects of their investments or lives.




    ReplyDelete
  108. In the world of RV enthusiasts, the name "Winnebago" has long been synonymous with exceptional quality, innovation, and durability. When it comes to ensuring your rv parts is in top-notch condition for all your adventures, choosing the right Winnebago parts is crucial. In this comprehensive guide, we'll delve into the world of Winnebago parts, exploring the wide range of options available and how they can elevate your RV experience to new heights.

    ReplyDelete
  109. Regular maintenance service of your Air Compressor Price
    will ensure that it is working efficiently and remains a good investment for your business.

    ReplyDelete
  110. Embrace your sophisticated side with a suit from Menz Suits. Browse our range of 2 and 3-piece suits for 3 piece suits for mens black or formal occasions at affordable prices. Free UK delivery is available on all orders. We Have Every Suit for Every Occasion. It's time to suit up!

    ReplyDelete
  111. Pure Colloids UK appears to be a distributor or retailer of colloidal products, specifically colloidal minerals and metals, primarily sourced from the USA. The products mentioned in your statement include Mesosilver, Mesogold sprays and creams, optimum cream
    , Mesoplatinum, Mesosilica, and Mesocopper in 250ml bottles.

    ReplyDelete
  112. Autohaus are a Minehead based Campervan conversion company. We product a wide range ofuk campervan conversions
    models for our Customers all across the UK

    ReplyDelete
  113. That is a great tip especially to those new to the blogosphere.

    ReplyDelete
  114. I liked your writing so much that I bookmarked it. Your writing skills are really good.

    ReplyDelete
  115. Greetings! Your blog is very interesting! Please check my website I have a recommendation for you.

    ReplyDelete
  116. After all I will be subscribing to your feed and I hope you write again very soon!

    ReplyDelete
  117. I am really impressed by reading the information content you provided.

    ReplyDelete
  118. A debt of gratitude is in order for sharing this helpful information..

    ReplyDelete
  119. the information you provide on this website has helped me greatly.

    ReplyDelete
  120. I wanted to thank you for this excellent read. I definitely loved every little bit of it.

    ReplyDelete
  121. Your webpage is fantastic and this is a fantastic inspiring submit

    ReplyDelete