GLSL内建函数

GLSL 内建函数
OpenGL ES着色语言为标量和向量操作定义了一套内建便利函数。有些内建函数可以用在多个类型的着色器中,有些是针对固定硬件的,所以这部分只能用在某个特定的着色器上。

内建函数基本上可以分为一下三类:

(1)它们使用一些简便的方式提供必要的硬件功能,如材质贴图。这些函数单独通过着色器是无法模拟出来的。

(2)它们展示了一些可以常简单的写入的繁琐操作(clamp, mix等),但是这些操作非常普遍,并且提供直接对硬件的支持。对于编译器来说,将表达式映射到复杂的装配线指令上是非常困难的。

(3)它们提供了对图形硬件的操作,并且在适当时候进行加速。三角函数就是一个很好的例子。

有些函数名称和常见的C库函数类似,但是它们支持向量的输入和更多的传统标量输入。

建议应用程序尽量使用内建函数而不是在着色器中实现相同的计算,因为内建函数是经过最大优化的(如,有些内建函数是直接操作硬件的)。

用户定义的代码可以重载内建函数,但最好不要重新定义它们。

内建函数的输入参数(和相应的输出的参数)可以是float, vec2, vec3, vec4。对于函数的任何特定应用,实际的类型必须和所有的参数和返回值相同。就像mat,必须为mat2, mat3, mat4.

参数和返回值的精度修饰符是隐藏的,对于材质函数,返回类型的精度必须和采样器类型匹配。

uniform lowp sampler2D sampler;
highp vec2 coord;
...
lowp vec4 col = texture2D (sampler, coord); // texture2D 返回类型的精度为lowp

其他内建函数形参的精度修饰是没有任何关联的。内建函数的调用将返回输入参数的最高精度。

1 角度和三角函数
标识为angle的函数参数假定以弧度为单位。这些函数不可能出现被0除的情况,如果被除数为0,结果是未定义的。

radian函数是将角度转换为弧度,degrees函数是将弧度转换为角度。sin, cos, tan都是标准的三角函数。asin, acos, atan是反三角函数。genType有点像面向对象中泛型,即如果genType是float型的,那么

genType pow (genType x, genType y)

就变成了:

float pow (float x, float y)

同理,如果genType是int型的,那么就变成了:

int pow (int x, int y);

2 指数函数

(1)genType pow (genType x, genType y)

x的y次方。如果x小于0,结果是未定义的。同样,如果x=0并且y<=0,结果也是未定义的。使用时应特别注意。

(2)genType exp (genType x)

e的x次方

(3)genType log (genType x)

计算满足x等于e的y次方的y的值。如果x的值小于0,结果是未定义的。

(4)genType exp2 (genType x)

计算2的x次方

(5)genType log2 (genType x)

计算满足x等于2的y次方的y的值。如果x的值小于0,结果是未定义的。

(6)genType sqrt (genType x)

计算x的开方。如果x小于0,结果是未定义的。

(7)genType inversesqrt (genType x)

计算x的开方之一的值,如果x小于等于0,结果是未定义的。

3 常用函数

(1)genType abs (genType x)

返回x的绝对值

(2)genType sign (genType x)

如果x>0,返回1.0;如果x=0,返回0,如果x<0,返回-1.0

(3)genType floor (genType x)

返回小于等于x的最大整数值

(4)genType ceil (genType x)

返回大于等于x的最小整数值

(5)genType fract (genType x)

返回x-floor(x),即返回x的小数部分

(6)genType mod (genType x, float y)、genType mod (genType x, genType y)

返回x – y floor (x/y),即求模计算%

(7)genType min (genType x, genType y),genType min (genType x, float y)

返回x和y的值较小的那个值。

(8)genType max (genType x, genType y),genType max (genType x, float y)

返回x和y的值较大的那个值。

(9)genType clamp (genType x, genType minVal, genType maxVal)、genType clamp (genType x, float minVal, float maxVal)

clamp翻译为夹具,就叫夹具函数吧,这个函数是什么意思呢?看看解释的意思是:获取x和minVal之间较大的那个值,然后再拿较大的那个值和最后那个最大的值进行比较然后获取较小的那个,意思就明白了,clamp实际上是获得三个参数中大小处在中间的那个值。函数有个说明:如果minVal > minMax的话,函数返回的结果是未定的。也就是说x的值大小没有限制,但是minval的值必须比maxVal小。

(10)genType mix (genType x, genType y, genType a)、genType mix (genType x, genType y, float a)

返回线性混合的x和y,如:x⋅(1−a)+y⋅a

(11)genType step (genType edge, genType x),genType step (float edge, genType x)

如果x < edge,返回0.0,否则返回1.0

(12)genType smoothstep (genType edge0,genType edge1,genType x),genType smoothstep (float edge0,float edge1,genType x)

如果x <= edge0,返回0.0 ;如果x >= edge1 返回1.0;如果edge0 < x < edge1,则执行0~1之间的平滑埃尔米特差值。如果edge0 >= edge1,结果是未定义的。

4 几何函数

(1)float length (genType x)

返回向量x的长度

(2)float distance (genType p0, genType p1)

计算向量p0,p1之间的距离

(3)float dot (genType x, genType y)

向量x,y之间的点积

(4)vec3 cross (vec3 x, vec3 y)

向量x,y之间的叉积

(5)genType normalize (genType x)

标准化向量,返回一个方向和x相同但长度为1的向量

(6)genType faceforward(genType N, genType I, genType Nref)

如果Nref和I的点积小于0,返回N;否则,返回-N;

(7)genType reflect (genType I, genType N)

返回反射向量

(8)genType refract(genType I, genType N,float eta)

返回折射向量

5 矩阵函数

(1)mat matrixCompMult (mat x, mat y)

矩阵x乘以y,result[i][j]是 x[i][j] 和 y[i][j] 的标量积。注意,要获取线性代数矩阵的乘法,使用乘法操作符

6 向量相关函数
相关或相等的操作符(<, <=, >, >=, ==, !=)被定义(或保留),返回一个标量布尔值。下面, “bvec” 是表示bvec2, bvec3, or bvec4的占位符, “ivec”是ivec2, ivec3, or ivec4的占位符, “vec” 是vec2, vec3, or vec4的占位符. 在任何情况下,输入和返回值向量的长度必须匹配。

(1)lessThan

比较x < y.

(2)lessThanEqual

比较x<=y

(3)greaterThan

比较x>y

(4)greaterThanEqual

比较x>=y

(5)equal

比较x==y

(6)notEqual

比较x!=y

(7)bool any(bvec x)

如果向量x的任何组件为true,则结果返回true。

(8)bool all(bvec x)

如果向量x的所有组件均为true,则结果返回true。

(9)bvec not(bvec x)

返回向量x的互补矩阵

7 材质查找函数
纹理(材质)查找函数对于定点着色器和片元着色器都适用。然而,定点着色器的细节级别并不是通过固定功能计算的,所以顶点着色器和片元着色器纹理查找之间还是有一些差别的。一下函数是通过采样器访问纹理,和使用OpenGL ES API是一样的。纹理属性如尺寸,像素格式,维数,过滤方法,纹理映射匹配数,深度比较等等在OpenGL ES API中都有定义。

在下面的函数中,bias参数对于片元着色器来说是可选的。但在定点着色器中不可使用。对于片元着色器,如果使用了bias这个参数,它被加到优先细节的计算级别中来执行纹理访问操作。如果bias没有使用,那么实现将自动选择一个默认级别。对于非纹理映射的纹理,纹理是直接被使用的。如果是纹理映射的,并且在片元着色器中执行,那么使用LOD来进行纹理查找。如果是纹理映射的,并且在顶点着色器中执行,那么使用的是基本纹理。

以Lod结尾的内建函数只能用在顶点着色器中,在带有Lod的函数中,lod参数直接用来表示细节级别。

8 片元处理函数

片元处理函数只有在片元语言中才有,但在GLSL ES中没有片元处理函数。

标签:,

About: kiah


760 thoughts on “GLSL内建函数”

  1. I happen to be writing to make you understand what a useful experience our princess went through visiting yuor web blog. She realized too many things, with the inclusion of what it is like to possess an incredible teaching style to make the rest without problems understand various very confusing topics. You undoubtedly surpassed visitors’ expected results. Thanks for supplying those warm and helpful, trustworthy, revealing not to mention unique tips on your topic to Tanya.

  2. I am commenting to let you know of the fine encounter my friend’s daughter found reading your site. She figured out many issues, not to mention what it’s like to have a wonderful giving mindset to have men and women quite simply have an understanding of selected hard to do subject areas. You really exceeded our expectations. Many thanks for giving the insightful, safe, explanatory and as well as easy thoughts on the topic to Jane.

  3. I happen to be writing to make you understand what a terrific experience our princess went through visiting yuor web blog. She realized such a lot of things, with the inclusion of what it is like to possess an incredible teaching style to make the others effortlessly fully understand certain extremely tough matters. You really did more than my desires. Many thanks for displaying the helpful, healthy, educational and also easy thoughts on the topic to Gloria.

  4. I’m just commenting to let you be aware of of the extraordinary discovery my cousin’s daughter experienced going through your site. She even learned lots of issues, most notably how it is like to have a very effective giving mindset to have many others just fully grasp a variety of complex issues. You actually did more than her desires. I appreciate you for coming up with such essential, dependable, edifying and cool guidance on that topic to Ethel.

  5. I simply wanted to thank you so much once more. I am not sure the things that I might have handled in the absence of the entire pointers provided by you on such a problem. It has been a very frightening difficulty in my circumstances, however , looking at the skilled manner you processed that made me to jump over fulfillment. I am happier for this help and in addition hope that you know what a great job you are always getting into instructing others through the use of your site. I know that you have never encountered all of us.

  6. I precisely had to appreciate you all over again. I am not sure the things that I might have followed in the absence of the entire information documented by you directly on such industry. It had become a real distressing crisis in my circumstances, however , encountering the skilled form you managed that made me to jump over fulfillment. I’m just happier for this guidance and even hope you find out what a great job you are doing instructing other individuals through your blog post. I am sure you have never encountered all of us.

  7. I simply needed to thank you so much once again. I am not sure the things that I would’ve implemented without the type of recommendations provided by you on such a question. It previously was a very frightful dilemma in my opinion, however , noticing the very specialised mode you processed that made me to leap over gladness. I am just happy for this information and in addition hope that you know what a great job you are always getting into teaching people thru your web blog. More than likely you have never got to know any of us.

  8. I’m just commenting to let you be aware of of the extraordinary discovery my cousin’s daughter enjoyed going through your blog. She discovered lots of issues, most notably how it is like to have a very effective giving heart to have many others effortlessly gain knowledge of certain extremely tough matters. You really did more than my desires. Many thanks for displaying the helpful, healthy, educational and also easy thoughts on the topic to Gloria.

  9. I carry on listening to the rumor talk about receiving free rebates online – Willis, grant applications so I have been looking around for the
    top site to get one. Could you advise me please, where could i get some?

  10. I really like your blog.. very nice colors & theme. Did you design this website yourself
    or did you hire someone to do it for you? Plz respond as I’m looking to construct my own blog and would like to
    find out where u got this from. thanks

    Feel free to visit my website – practice tests (Wilbur)

  11. I do not even understand how I finished up here, however
    I thought this submit was once great. I don’t recognise
    who you are however certainly you are going to a well-known blogger in the event you are not already.
    Cheers!

    Here is my homepage: nortel exams preparation (Elinor)

  12. all the time i used to read smaller articles
    that as well clear their motive, and that is also happening with this post which I am reading here.

    Here is my page :: mblex online study guide (Gena)

  13. hey there and thank you for your information ?
    I’ve certainly picked up anything new from right here.

    I did however expertise several technical points using this website, since I
    experienced to reload the web site a lot of times previous to I
    could get it to load properly. I had been wondering if your
    web host is OK? Not that I’m complaining, but sluggish
    loading instances times will often affect your placement in google and can damage your quality score if ads and
    marketing with Adwords. Well I am adding this RSS to my email and can look out prepare
    for cpc exam (Novella) much more of your respective interesting content.
    Make sure you update this again very soon.

  14. Oh my goodness! Impressive article dude! Many thanks, However I am having issues with your
    RSS. I don’t understand why I can’t join it. Is there anybody having similar RSS issues?
    Anyone who knows the answer will you kindly respond? Thanks!!

    My web-site nclex Test questions

  15. You’re so awesome! I do not suppose I have read through anything like that before.
    So great to discover somebody with some genuine thoughts on this subject matter.
    Really.. thanks for starting this up. This web site is one thing that is
    required on the web, someone with some originality!

    My web page cna certification exams (Buck)

  16. all the time i used to read smaller articles that
    as well clear their motive, and that is also happening with this paragraph which I am reading here.

    Here is my homepage: police exam (Sanora)

  17. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  18. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  19. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  20. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  21. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  22. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  23. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  24. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  25. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  26. continuously i used to read smaller posts
    which as well clear their motive, and that is also happening with this post which I am reading
    at this place.

    My site; medical coding certification; Domingo,

  27. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  28. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  29. Way cool! Some extremely valid points! I appreciate you writing this post and the rest of
    the website is extremely good.

    Here is my page exam preparation materials; Cleta,

  30. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  31. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  32. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  33. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  34. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  35. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  36. Холостячка 2 сезон https://bit.ly/39ioLkW Смотреть онлайн шоу Холостячка 2 сезон на СТБ.
    Пост шоу можно смотреть тут. Холостячка стб 2 сезон 1-2 серия

  37. Смотреть фильмы онлайн в хорошем качестве полностью Маленькая мама 1080 смотреть фильмы онлайн новинки вышедшие. Скачать бесплатно фильм новинку лучшее. Смотреть новые лучшие фильмы 2021 года. Новинки фильмов года смотреть онлайн. Новинки кино 2021 смотреть онлайн. Смотреть фильмы новинки вышли качестве. Смотреть фильмы новинки 2021. Новинки фильмов смотреть в хорошем качестве 2021. Новинки кино смотреть онлайн бесплатно без. Смотреть онлайн бесплатно новинки фильмов 2021 года. Смотреть новинки кино в хорошем качестве.

  38. I love your blog.. very nice colors & theme. Did you make
    this website yourself or did you hire someone to do it for you?

    Plz reply as I’m looking to create my own blog and would like to find out where u got
    this from. many thanks

    Feel free to visit my blog – exam material – Kristy

  39. I don’t even understand how I stopped up right here, but I thought this submit
    was once great. I don’t realize who you might be however certainly
    you’re going to a famous blogger if you are not already.
    Cheers!

    My blog :: ibm certification, Jenni,

  40. First off I want to say superb blog! I had a quick question that I’d like to ask if you do
    not mind. I was curious to know how you center yourself and clear your
    thoughts before writing. I’ve had a hard time clearing my mind in getting my thoughts out.
    I truly do take pleasure in writing but it just seems like the
    first 10 to 15 minutes are generally lost just trying to figure out how to begin.
    Any ideas or hints? Many thanks!

    Here is my web site – certified nursing (https://www.artstation.com/mantiagzzv7)

  41. I precisely wished to appreciate you once again.
    I am not sure what I could possibly have done in the absence of
    the type of methods provided by you about such a problem.
    It was a very horrifying setting for me personally, however ,
    noticing a professional form you dealt with the issue forced me to cry with gladness.
    I’m happier for the service and thus believe you find out what a great job you are
    always undertaking training most people through the use of
    your website. Most likely you’ve never encountered all of us.

    Feel free to visit my homepage … cisco certified (Jolene)

  42. Приглашаем вас на консультации
    детского психолога. Психологи онлайн Услуги психолога.
    Заказать консультацию психолога.
    Консультация психолога в Киеве Консультация Психолога – Профессиональная поддержка.
    Індивідуальні консультації.
    Психолог,Психолог онлайн.

  43. Усика пугают нокаутом, которым Джошуа одолел болгарина Кубрата Пулева. Реклама Тогда как самому Энтони трансляторы напомнили, как Усик, пусть у него и нет репутации ударника, вырубил Усик Джошуа дивитися онлайн Усик в костюме Джокера впервые посмотрел в глаза Джошуа

  44. Усик обратился к Джошуа: “Я чую твой запах” По словам промоутера Усика Александра Красюка, 80 процентов гонорара получит британский боксёр, а оставшиеся 20 процентов – украинец. Усик Джошуа дивитися онлайн Усик – Джошуа, сообщает Расписание главных боев недели

  45. Fenomenlerin tercihi olan 2018 yılından beri bu yana kesintisiz
    hizmet sunan takip2018.com ile hemen takipçi alabilir
    dilediğiniz kadar takipçilere sahip olma şansını yakalayabilirsiniz.

    Takipçi almak için aşağıdaki linkten iletişime geçin :
    Takipçi Satın Al

  46. Admiring the time and effort you put into your blog and detailed information you offer.
    It’s great to come across a blog every once in a while
    that isn’t the same outdated rehashed information. Wonderful
    read! I’ve saved your site and I’m including your RSS
    feeds to my Google account.

    Review my blog; sap mm certification (Ardis)

  47. I am also commenting to let you be aware of what a cool discovery my friend’s child undergone checking your web page.
    She came to find so many issues, with the inclusion of how it is like to possess
    an awesome helping nature to get many others completely comprehend selected grueling
    issues. You actually did more than my desires. I
    appreciate you for producing these warm and friendly, trusted, edifying
    and easy tips about your topic to Jane.

    Have a look at my site: exam material typically – Abraham,

  48. I really like your blog.. very nice colors & theme.
    Did you design this website yourself or did you hire someone to do
    it for you? Plz answer back as I’m looking
    to design my own blog and would like to know where u got this from.
    kudos

    my web-site … 312-50 exam (Derrick)

  49. Piece of writing writing is also a excitement, if you be familiar with
    then you can write if not it is complicated to write.

    Feel free to surf to my site pass mcitp (Richie)

  50. Appreciating the dedication you put into your site and in depth information you provide.
    It’s awesome to come across a blog every once in a while that isn’t
    the same outdated rehashed material. Fantastic read!
    I’ve saved your site and I’m including your RSS feeds to my Google
    account.

    my site – exam stress

  51. I go to see everyday a few sites and websites to read posts, except this web site provides quality based articles.

    my blog – pmp exam stress; Twila,

  52. You are so cool! I don’t believe I’ve read something like this
    before. So nice to discover somebody with some original thoughts on this topic.
    Really.. thanks prepare for cpc exam (http://www.goodreads.com) starting this
    up. This website is something that is required on the internet, someone with some originality!

  53. Your style is unique compared to other people I’ve read stuff
    from. Many thanks for posting when you have the opportunity, Guess I will just
    book mark this page.

  54. My brother suggested I might like this website.
    He was totally right. This post actually made my day.
    You cann’t imagine simply how much time I had spent for this
    info! Thanks!

  55. Greetings! I’ve been following your weblog for some time now and finally got the bravery to go
    ahead and give you a shout out from Lubbock Texas!

    Just wanted to mention keep up the fantastic job!

    Also visit my web blog: test nerves [Martha]

  56. First off I want to say fantastic blog! I
    had a quick question in which I’d like to ask if you do not mind.
    I was curious to know how you center yourself and clear your head before writing.
    I’ve had difficulty clearing my mind in getting my ideas out.
    I do enjoy writing however it just seems like the first 10 to 15 minutes are
    generally wasted simply just trying to figure out how to begin. Any suggestions or hints?
    Cheers!

    Feel free to visit my homepage: certification test

  57. hey there and thank you for your info ? I’ve definitely
    picked up something new from right here. I did however expertise a few
    technical points using this site, as I experienced to reload the site many times previous to I could get it to
    load correctly. I had been wondering if your hosting is OK?

    Not that I am complaining, but sluggish loading instances
    times will sometimes affect your placement in google and could damage your high-quality score
    if advertising and marketing with Adwords. Anyway I’m adding this RSS to my email and can look out for a lot more of
    your respective exciting content. Make sure you update this again soon.

    My blog post; pass mcitp (Angelo)

  58. Piece of writing writing is also a excitement, if you be acquainted with then you can write otherwise it is complex to write.

    my page; certification course; Vicki,

  59. Appreciating the time and energy you put into your blog and
    in depth information you present. It’s great to come across a blog every
    once in a while that isn’t the same out of date rehashed information. Wonderful read!
    I’ve saved your site and I’m adding your RSS feeds to my Google account.

    Also visit my homepage – exams centred, Lila,

  60. You’re so cool! I do not suppose I’ve read through anything like
    that before. So nice to discover somebody with a few genuine thoughts on this issue.
    Really.. many thanks for starting this up. This website is one thing that is required on the internet, someone with a little originality!

    Here is my site :: free pmp practice exam (Cedric)

  61. Appreciating the commitment you put into your site and in depth information you present.
    It’s nice to come across a blog every once in a while that isn’t the
    same out of date rehashed material. Great read! I’ve bookmarked your site and I’m including your
    RSS feeds to my Google account.

    My webpage: free study materials (Bonny)

  62. I’m also commenting to make you know of the exceptional encounter my wife’s girl enjoyed using your webblog.
    She came to find a lot of things, with the inclusion of what
    it is like to have a marvelous giving heart to get other individuals
    completely comprehend a number of multifaceted things.

    You truly surpassed people’s desires. Many thanks for rendering those useful, trustworthy, educational and as well
    as easy tips on that topic to Evelyn.

    Also visit my blog post – nursing test (https://www.divephotoguide.com/user/eogernaryk)

  63. Hello there, just became aware of your blog through Google,
    and found that it’s really informative. I am going to watch out for brussels.
    I?ll be grateful if you continue this in future.

    Many people will be benefited from your writing. Cheers!

    Feel free to surf to my page :: 312-50 exam

  64. Hey there! This post could not be written any better! Reading through this post reminds me of my previous room mate! He always kept chatting about this. I will forward this post to him. Fairly certain he will have a good read. Thank you for sharing!|

  65. When someone writes an paragraph he/she keeps the image of a user in his/her mind that how a user can know it. Therefore that’s why this post is great. Thanks!|

  66. I needed to thank you for this excellent read!! I absolutely loved every little bit of it. I have got you saved as a favorite to check out new things you post…|

  67. I simply couldn’t leave your site before suggesting that I really loved the usual info an individual provide to your visitors? Is gonna be again ceaselessly to investigate cross-check new posts|

  68. This design is wicked! You definitely know how to keep a reader amused. Between your wit and your videos, I was almost moved to start my own blog (well, almost…HaHa!) Excellent job. I really loved what you had to say, and more than that, how you presented it. Too cool!|

发表评论

电子邮件地址不会被公开。