text:
The website is under construction and logging in is no longer necessary.
Member discounts are applied during registration by using your CPA-linked email in the registration form.
Posted October 2nd, 2018 by Ashley Lewis & filed under .
Written Exam Registrations are now open and can be found at these links or under the Credential Program dropdown menu. The deadline to register is Sunday, October 30th.
SPC's Annual Members Meeting will be held (remotely) on Tuesday, May 10th, 2022 Are you a current SPC member with vision and excitement to contribute towards advancing SPC and its strategic plan? Do you enjoy connecting with colleagues and engaging with members and stakeholders? Have you considered the opportunity to join the SPC Executive Committee?... Read more »


text:
This dress could be custom made, there are no extra cost to do custom size and color.
Please noted:
If you want rush your order,Please click this link:https://www.luulla.com/product/396915/rush-order-service-cost
Just put this in your shopping cart if you need rush order, or pay for this link after you ordered your dress.
For rush order, dress will be finished in 10-14 Working days, and then 3-5 days for shipping, that means, you just only need 15-19 days to get your dress if your choose rush order!
Guaranteed handmade by our talented tailors.We are glad to make this dress for you by custom orders, so we prefer to make this dress according on your measurements and desired length.Measurements, which should be taken strictly according to the above instruction by professional, not by yourself.
1, Material:Lace
2, Color: picture color or other colors, there are 126 colors are available, please contact us for more colors,
3, Size: standard size or custom size, if dress is custom made, we need to size as following
bust______ cm/inch
shoulder to shoulder :_______cm/inch (measured from back of shoulder)
shoulder to bust :_______cm/inch (measured from middle shoulder to nipple)
shoulder to waist :_______cm/inch (measured from middle of shoulder to natural waist)
shoulder to hem :_______cm/inch (measured from middle of shoulder over nipple to end of skirt)
nipple to nipple:_______cm/inch
armhole__________cm/inch (end of arm)
4, Processing time: We already displayed in the product page that we will need around 18-30 days to finish your dress, and another days for shipment, if you need the dress very urgent, please do remember to ask us whether we can do it or not before you placed the order; We don't accept the cancellation which is still in the processing time;.
Normal time: Within 25 days (From May to Dec)
Around 30 days (From Jan to April), it's busy season together with spring festival holiday, so produce time will be long.
5, Packing: in order to save your shipping cost, each dress will be packed tightly with water proof bag .
6, Shipping: by UPS or DHL or some special airline.
7, Payment: Paypal, bank transfer, western union, money gram and so on.
8, Return Policy: lass prom dress
We will accept returns if dresses have quality problems, wrong delivery time, we also hold the right to refuse any unreasonable returns, such as wrong size you gave us or standard size which we made right, but we offer free modify.
Please see following for the list of quality issues that are fully refundable for:
Wrong Size, Wrong Colour, Wrong style, Damaged dress- 100% Refund or remake one or return 50% payment to you, you keep the dress.
In order for your return or exchange to be accepted, please carefully follow our guide:
1. Contact us within 2 days of receiving the dress (please let us know if you have some exceptional case in advance)
2. Provide us with photos of the dress, to show evidence of damage or bad quality, this also applies for the size, or incorrect style and colour etc.
3. The returned item must be in perfect condition (as new), you can try the dress on, but be sure not to stretch it or make any dirty marks, otherwise it will not be accepted.
4. The tracking number of the returned item must be provided together with the reference code issued.
5. If you prefer to exchange dresses, then a price difference will be charged if more expensive.
6. You are required to pay for the shipping fee to return or exchange the dress.
7. When you return the package to us, please pay attention to the following points, if not, customers should pay for the duty:
we put all of our energy and mind into each dress, each of our dress are full of love, our long experience and skilled craftsmanship keep less return rate till now, but if there are our problems, we could return all your payment, for more details, please see our FAQ.
9, Custom taxes
Except Unite States, most buyers need to pay customs taxes, in order to save cost for you, we have marked around $30-40.00 on the invoice, then you just pay less taxes, please note that it's express help customs collect this payment, it is not shipping cost, as shipping cost has already paid before sending.
10 ,Cancellations Policy:
1. Orders cancelled within 24 hours after payment confirmation will be eligible for a full refund;
2. Orders cancelled within 1--3 days after payment confirmation will be eligible for a partial refund, consisting of the full shipping cost and 50% of the product purchase price;
3. Orders canceled after 3 days of payment confirmation will be eligible for a partial refund consisting of the full shipping cost and 40% of the product purchase price;
4. Once your order has been shipped, it can no longer be cancelled
Our advantage:
We do long time dresses for some famous brands, we also make dresses for designers in European and USA client, please trust us,

subset: commoncrawl


text:
Vertex Specification
- Vertex Specification
- Vertex Processing
- Vertex Post-Processing
- Primitive Assembly
- Rasterization
- Fragment Shader
- Per-Sample Processing
Vertex Specification is the process of setting up the necessary objects for rendering with a particular shader program, as well as the process of using those objects to render.
Submitting vertex data for rendering requires creating a stream of vertices, and then telling OpenGL how to interpret that stream.
Vertex Stream
In order to render at all, you must be using a shader program or program pipeline which includes a Vertex Shader. The VS's user-defined input variables defines the list of expected Vertex Attributes for that shader. This set of attributes defines what values the vertex stream must provide to properly render with this shader.
For each attribute in the shader, you must provide an array of data for that attribute. All of these arrays must have the same number of elements. Note that these arrays are a bit more flexible than C arrays, but overall work the same way.
The order of vertices in the stream is very important; this order defines how OpenGL will process and render the Primitives the stream generates. There are two ways of rendering with arrays of vertices. You can generate a stream in the array's order, or you can use a list of indices to define the order. The indices control what order the vertices are received in, and indices can specify the same array element more than once.
Let's say you have the following as your array of 3d position data:
{ {1, 1, 1}, {0, 0, 0}, {0, 0, 1} }
If you simply use this as a stream as is, OpenGL will receive and process these three vertices in order (left-to-right). However, you can also specify a list of indices that will select which vertices to use and in which order.
Let's say we have the following index list:
{2, 1, 0, 2, 1, 2}
If we render with the above attribute array, but selected by the index list, OpenGL will receive the following stream of vertex attribute data:
{ {0, 0, 1}, {0, 0, 0}, {1, 1, 1}, {0, 0, 1}, {0, 0, 0}, {0, 0, 1} }
The index list is a way of reordering the vertex attribute array data without having to actually change it. This is mostly useful as a means of data compression; in most tight meshes, vertices are used multiple times. Being able to store the vertex attributes for that vertex only once is very economical, as a vertex's attribute data is generally around 32 bytes, while indices are usually 2-4 bytes in size.
A vertex stream can of course have multiple attributes. You can take the above position array and augment it with, for example, a texture coordinate array:
{ {0, 0}, {0.5, 0}, {0, 1} }
The vertex stream you get will be as follows:
{ [{0, 0, 1}, {0, 1}], [{0, 0, 0}, {0.5, 0}], [{1, 1, 1}, {0, 0}], [{0, 0, 1}, {0, 1}], [{0, 0, 0}, {0.5, 0}], [{0, 0, 1}, {0, 1}] }
The above stream is not enough to actually draw anything; you must also tell OpenGL how to interpret this stream. And this means telling OpenGL what kind of primitive to interpret the stream as.
There are many ways for OpenGL to interpret a stream of, for example, 12 vertices. It can interpret the vertices as a sequence of triangles, points, or lines. It can even interpret these differently; it can interpret 12 vertices as 4 independent triangles (take every 3 verts as a triangle), as 10 dependent triangles (every group of 3 sequential vertices in the stream is a triangle), and so on.
The main article on Primitives has the details.
Vertex Array Object
|Core in version
|Core since version
|Core ARB extension
A Vertex Array Object (VAO) is an OpenGL Object that stores all of the state needed to supply vertex data (with one minor exception noted below). It stores the format of the vertex data as well as the Buffer Objects (see below) providing the vertex data arrays. Note that VAOs do not copy, freeze or store the contents of the referenced buffers - if you change any of the data in the buffers referenced by an existing VAO, those changes will be seen by users of the VAO.
As OpenGL Objects, VAOs have the usual creation, destruction, and binding functions: glGenVertexArrays, glDeleteVertexArrays, and glBindVertexArray. The latter is different, in that there is no "target" parameter; there is only one target for VAOs, and glBindVertexArray binds to that target.
Vertex attributes are numbered from 0 to GL_MAX_VERTEX_ATTRIBS - 1. Each attribute can be enabled or disabled for array access. When an attribute's array access is disabled, any reads of that attribute by the vertex shader will produce a constant value (see below) instead of a value pulled from an array.
A newly-created VAO has array access disabled for all attributes. Array access is enabled by binding the VAO in question and calling:
void glEnableVertexAttribArray(GLuint index);
There is a similar glDisableVertexAttribArray function to disable an enabled array.
Remember: all of the state below is part of the VAO's state, except where it is explicitly stated that it is not. A VAO must be bound when calling any of those functions, and any changes caused by these function will be captured by the VAO.
The compatibility OpenGL profile makes VAO object 0 a default object. The core OpenGL profile makes VAO object 0 not an object at all. So if VAO 0 is bound in the core profile, you should not call any function that modifies VAO state. This includes binding the `GL_ELEMENT_ARRAY_BUFFER` with glBindBuffer.
Vertex Buffer Object
A Vertex Buffer Object (VBO) is a Buffer Object which is used as the source for vertex array data. It is no different from any other buffer object, and a buffer object used for Transform Feedback or asynchronous pixel transfers can be used as source values for vertex arrays.
There are two ways to use buffer objects as the source for vertex data. This section describes the combined format method. A method that separates the format specification from buffers is described below. The two are functionally equivalent, but the separate method is easier to use and understand; however, it requires OpenGL 4.3 or ARB_vertex_attrib_binding.
The format and source buffer for an attribute array can be set by doing the following. First, the buffer that the attribute comes from must be bound to GL_ARRAY_BUFFER.
Once the buffer is bound, call one of these functions:
void glVertexAttribPointer( GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *offset); void glVertexAttribIPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const void *offset ); void glVertexAttribLPointer( GLuint index, GLint size, GLenum type, GLsizei stride, const void *offset );
All of these functions do more or less the same thing: setting the format and buffer storage information for attribute index index. The difference between them will be discussed later. Note that the last function is only available on OpenGL 4.1 or ARB_vertex_attrib_64bit.
These functions say that the attribute index index will get its attribute data from whatever buffer object is currently bound to GL_ARRAY_BUFFER. It is vital to understand that this association is made when this function is called. For example, let's say we do this:
glBindBuffer(GL_ARRAY_BUFFER, buf1);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
The first line binds buf1 to the GL_ARRAY_BUFFER binding. The second line says that attribute index 0 gets its vertex array data from buf1, because that's the buffer that was bound to GL_ARRAY_BUFFER when the glVertexAttribPointer was called.
The third line binds the buffer object 0 to the GL_ARRAY_BUFFER binding. What does this do to the association between attribute 0 and buf1?
Nothing! Changing the GL_ARRAY_BUFFER binding changes nothing about vertex attribute 0. Only calls to glVertexAttribPointer can do that.
Think of it like this. glBindBuffer sets a global variable, then glVertexAttribPointer reads that global variable and stores it in the VAO. Changing that global variable after it's been read doesn't affect the VAO. You can think of it that way because that's exactly how it works.
This is also why GL_ARRAY_BUFFER is not VAO state; the actual association between an attribute index and a buffer is made by glVertexAttribPointer.
Note that it is an error to call the glVertexAttribPointer functions if 0 is currently bound to GL_ARRAY_BUFFER.
Vertex format
The glVertexAttribPointer functions state where an attribute index gets its array data from. But it also defines how OpenGL should interpret that data. Thus, these functions conceptually do two things: set the buffer object information on where the data comes from and define the format of that data.
The format parameters describe how to interpret a single vertex of information from the array. Vertex Attributes in the Vertex Shader can be declared as a floating-point GLSL type (such as float or vec4), an integral type (such as uint or ivec3), or a double-precision type (such as double or dvec4). Double-precision attributes are only available in OpenGL 4.1 or ARB_vertex_attrib_64bit.
The general type of attribute used in the vertex shader must match the general type provided by the attribute array. This is governed by which glVertexAttribPointer function you use. For floating-point attributes, you must use glVertexAttribPointer. For integer (both signed and unsigned), you must use glVertexAttribIPointer. And for double-precision attributes, where available, you must use glVertexAttribLPointer.
Each attribute index represents a vector of some type, from 1 to 4 components in length. The size parameter of the glVertexAttribPointer functions defines the number of components in the vector provided by the attribute array. It can be any number 1-4. Note that size does not have to exactly match the size used by the vertex shader. If the vertex shader has fewer components than the attribute provides, then the extras are ignored. If the vertex shader has more components than the array provides, the extras are given values from the vector (0, 0, 0, 1) for the missing XYZW components.
The latter is not true for double-precision inputs (OpenGL 4.1 or ARB_vertex_attrib_64bit). If the shader attribute has more components than the provided value, the extra components will have undefined values.
Component type
The type of the vector component in the buffer object is given by the type and normalized parameters, where applicable. This type will be converted into the actual type used by the vertex shader. The different glVertexAttribPointer functions take different types. Here is a list of the types and their meanings for each function:
- Floating-point types. normalized must be GL_FALSE
- GL_HALF_FLOAT: A 16-bit half-precision floating-point value. Equivalent to GLhalf.
- GL_FLOAT: A 32-bit single-precision floating-point value. Equivalent to GLfloat.
- GL_DOUBLE: A 64-bit double-precision floating-point value. Never use this. It's technically legal, but almost certainly a performance trap. Equivalent to GLdouble.
- GL_FIXED: A 16.16-bit fixed-point two's complement value. Equivalent to GLfixed.
- Integer types; these are converted to floats automatically. If normalized is GL_TRUE, then the value will be converted to a float via integer normalization (an unsigned byte value of 255 becomes 1.0f). If normalized is GL_FALSE, it will be converted directly to a float as if by C-style casting (255 becomes 255.0f, regardless of the size of the integer).
- GL_BYTE: A signed 8-bit two's complement value. Equivalent to GLbyte.
- GL_UNSIGNED_BYTE: An unsigned 8-bit value. Equivalent to GLubyte.
- GL_SHORT: A signed 16-bit two's complement value. Equivalent to GLshort.
- GL_UNSIGNED_SHORT: An unsigned 16-bit value. Equivalent to GLushort.
- GL_INT: A signed 32-bit two's complement value. Equivalent to GLint.
- GL_UNSIGNED_INT: An unsigned 32-bit value. Equivalent to GLuint.
- GL_INT_2_10_10_10_REV: A series of four values packed in a 32-bit unsigned integer. Each individual packed value is a two's complement signed integer, but the overall bitfield is unsigned. The bitdepth for the packed fields are 2, 10, 10, and 10, but in reverse order. So the lowest-significant 10-bits are the first component, the next 10 bits are the second component, and so on. If you use this, the size must be 4 (or GL_BGRA, as shown below).
- GL_UNSIGNED_INT_2_10_10_10_REV: A series of four values packed in a 32-bit unsigned integer. The packed values are unsigned. The bitdepth for the packed fields are 2, 10, 10, and 10, but in reverse order. So the lowest-significant 10-bits are the first component, the next 10 bits are the second component, and so on. If you use this, the size must be 4 (or GL_BGRA, as shown below).
- GL_UNSIGNED_INT_10F_11F_11F_REV: Requires OpenGL 4.4 or ARB_vertex_type_10f_11f_11f_rev. This represents a 3-element vector of floats, packed into a 32-bit unsigned integer. The bitdepth for the packed fields is 10, 11, 11, but in reverse order. So the lowest 11 bits are the first component, the next 11 are the second, and the last 10 are the third. These floats are the low bitdepth floats, packed exactly like the image format GL_R11F_G11F_B10F. If you use this, the size must be 3.
glVertexAttribIPointer: This function only feeds attributes declared in GLSL as signed or unsigned integers, or vectors of the same.
- GL_BYTE: A signed 8-bit two's complement value. Equivalent to GLbyte.
- GL_UNSIGNED_BYTE: An unsigned 8-bit value. Equivalent to GLubyte.
- GL_SHORT: A signed 16-bit two's complement value. Equivalent to GLshort.
- GL_UNSIGNED_SHORT: An unsigned 16-bit value. Equivalent to GLushort.
- GL_INT: A signed 32-bit two's complement value. Equivalent to GLint.
- GL_UNSIGNED_INT: An unsigned 32-bit value. Equivalent to GLuint.
glVertexAttribLPointer: This function only feeds attributes declared in GLSL as double or vectors of the same.
- GL_DOUBLE: A 64-bit double-precision float value. Equivalent to GLdouble.
Here is a visual demonstration of the ordering of the 2_10_10_10_REV types:
Here is a visual demonstration of the ordering of the 10F_11F_11F_REV type:
D3D compatibility
|Core in version
|Core since version
|Core ARB extension
When using glVertexAttribPointer, and only this function (not the other forms), the size field can be a number 1-4, but it can also be GL_BGRA.
This is somewhat equivalent to a size of 4, in that 4 components are transferred. However, as the name suggests, this "size" reverses the order of the first 3 components.
This special mode is intended specifically for compatibility with certain Direct3D vertex formats. Because of that, this special size can only be used in conjunction with:
- type must be GL_UNSIGNED_BYTE, GL_INT_2_10_10_10_REV or GL_UNSIGNED_INT_2_10_10_10_REV
- normalized must be GL_TRUE
So you cannot pass non-normalized values with this special size.
Here is a visual description:
Notice how X comes second and the Z last. X is equivalent to R and Z is equivalent to B, so it comes in the reverse of BGRA order: ARGB.
Vertex buffer offset and stride
The vertex format information above tells OpenGL how to interpret the data. The format says how big each vertex is in bytes and how to convert it into the values that the attribute in the vertex shader receives.
But OpenGL needs two more pieces of information before it can find the data. It needs a byte offset from the start of the buffer object to the first element in the array. So your arrays don't always have to start at the front of the buffer object. It also needs a stride, which represents how many bytes it is from the start of one element to the start of another.
The offset defines the buffer object offset. Note that it is a parameter of type const void * rather than an integer of some kind. This is in part why it's called glVertexAttribPointer, due to old legacy stuff where this was actually a client pointer.
So you will need to cast the integer offset into a pointer. In C, this is done with a simple cast: (void*)(byteOffset). In C++, this can be done as such: reinterpret_cast<void*>(byteOffset).
The stride is used to decide if there should be bytes between vertices. If it is set to 0, then OpenGL will assume that the vertex data is tightly packed. So OpenGL will compute the stride from the given other components. So if you set the size to be 3, and type to be GL_FLOAT, OpenGL will compute a stride of 12 (4 bytes per float, and 3 floats per attribute).
Interleaved attributes
The main purpose of the stride attribute is to allow interleaving between different attributes. This is conceptually the difference between these two C++ definitions:
struct StructOfArrays
GLfloat positions[VERTEX_COUNT * 3];
GLfloat normals[VERTEX_COUNT * 3];
GLubyte colors[VERTEX_COUNT * 4];
StructOfArrays structOfArrays;
struct Vertex
GLfloat position[3];
GLfloat normal[3];
Glubyte color[4];
Vertex vertices[VERTEX_COUNT];
structOfArrays is a struct that contains several arrays of elements. Each array is tightly packed, but independent of one another. vertices is a single array, where each element of the array is an independent vertex.
If we have a buffer object which has had vertices uploaded to it, such that baseOffset is the byte offset to the start of this data, we can use the stride parameter to allow OpenGL to access it:
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast<void*>(baseOffset + offsetof(Vertex, position)));
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast<void*>(baseOffset + offsetof(Vertex, normal)));
glVertexAttribPointer(2, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Vertex), reinterpret_cast<void*>(baseOffset + offsetof(Vertex, color)));
Note that each attribute uses the same stride: the size of the Vertex struct. C/C++ requires that the size of this struct be padded where appropriately such that you can get the next element in an array by adding that size in bytes to a pointer (ignoring pointer arithmetic, which will do all of this for you). Thus, the size of the Vertex structure is exactly the number of bytes from the start of one element to another, for each attribute.
The macro offsetof computes the byte offset of the given field in the given struct. This is added to the baseOffset, so that each field points to the start of its own data relative to the beginning of the Vertex structure.
As a general rule, you should use interleaved attributes wherever possible. Obviously if you need to change certain attributes and not others, then interleaving the ones that change with those that don't is not a good idea. But you should interleave the constant attributes with each other, and the changing attributes with those that change at the same time.
Index buffers
Indexed rendering, as defined above, requires an array of indices; all vertex attributes will use the same index from this index array. The index array is provided by a Buffer Object bound to the GL_ELEMENT_ARRAY_BUFFER binding point. When a buffer is bound to GL_ELEMENT_ARRAY_BUFFER, all drawing commands of the form gl*Draw*Elements* will use indexes from that buffer. Indices can be unsigned bytes, unsigned shorts, or unsigned ints.
The index buffer binding is stored within the VAO. If no VAO is bound, then you cannot bind a buffer object to GL_ELEMENT_ARRAY_BUFFER.
Instanced arrays
|Core in version
|Core since version
|ARB extension
Normally, vertex attribute arrays are indexed based on the index buffer, or when doing array rendering, once per vertex from the start point to the end. However, when doing instanced rendering, it is often useful to have an alternative means of getting per-instance data than accessing it directly in the shader via a Uniform Buffer Object, a Buffer Texture, or some other means.
It is possible to have one or more attribute arrays indexed, not by the index buffer or direct array access, but by the instance count. This is done via this function:
void glVertexAttribDivisor(GLuint index, GLuint divisor);
The index is the attribute index to set. If divisor is zero, then the attribute acts like normal, being indexed by the array or index buffer. If divisor is non-zero, then the current instance is divided by this divisor, and the result of that is used to access the attribute array.
The "current instance" mentioned above starts at the base instance for instanced rendering, increasing by 1 for each instance in the draw call. Note that this is not how the gl_InstanceID is computed for Vertex Shaders; that is not affected by the base instance. If no base instance is specified, then the current instance starts with 0.
This is generally considered the most efficient way of getting per-instance data to the vertex shader. However, it is also the most resource-constrained method in some respects. OpenGL implementations usually offer a fairly restricted number of vertex attributes (16 or so), and you will need some of these for the actual per-vertex data. So that leaves less room for your per-instance data. While the number of instances can be arbitrarily large (unlike UBO arrays), the amount of per-instance data is much smaller.
However, that should be plenty for a quaternion orientation and a position, for a simple transformation. That would even leave one float (the position only needs to be 3D) to provide a fragment shader an index to access an Array Texture.
Separate attribute format
|Core in version
|Core since version
|Core ARB extension
glVertexAttribPointer and its variations are nice, but they unify two separate concepts into one function (from a hardware perspective): the vertex format for an attribute array, and the source data for that array. These concepts can be separated, allowing the user to separately specify the format of a vertex attribute from the source buffer. This also makes it easy to change the buffer binding for multiple attributes, since different attributes can pull from the same buffer location.
This separation is achieved by splitting the state into two pieces: a number of vertex buffer binding points, and a number of vertex format records.
The buffer binding points aggregate the following data:
- The source buffer object.
- The base byte offset into the buffer object for all vertex attributes that pull data from this binding point.
- The byte stride for all vertex attributes that pull data from this binding point.
- The instance divisor, which is used for all vertex attributes that pull data from this binding point.
The vertex format consists of:
- The size, type and normalization of the vertex attribute data.
- The buffer binding point it is associated with.
- A byte offset from the base offset of its associated buffer binding point to where it's vertex data starts.
The functions that set the buffer binding point data are:
void glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLintptr stride);void glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
glBindVertexBuffer is kind of like glBindBufferRange, but it is specifically intended for vertex buffer objects. The bindingindex is, as the name suggests, not a vertex attribute. It is a binding index, which can range from 0 to GL_MAX_VERTEX_ATTRIB_BINDINGS - 1. This will almost certainly be 16.
buffer is the buffer object that is being bound to this binding index. Note that there is no need to bind the buffer to GL_ARRAY_BUFFER; the function takes the buffer object directly. offset is a byte offset from the beginning of the buffer to where all of the associated attached buffer object data begins. stride is the byte offset from one vertex to the next.
Notice that the stride is uncoupled from the vertex format itself here. Also, stride can no longer be 0. This is because OpenGL doesn't know the format of the data yet, so it can't automatically compute it.
In OpenGL 4.4, stride is prevented from being larger than GL_MAX_VERTEX_ATTRIB_STRIDE. This is an implementation-defined limitation, but it will be no less than 2048.
glVertexBindingDivisor is much like glVertexAttribDivisor, except applied to a binding index instead of an attribute index. All vertex attributes associated with this binding index will use the same divisor.
The functions that affect vertex attribute formats are:
void glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
void glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);void glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
The glVertexAttribFormat functions work similarly to their glVertexAttribPointer counterparts (it even takes GL_BGRA for the size in the same way as the original). attribindex is, as the name suggests, an actual attribute index, from 0 to GL_MAX_VERTEX_ATTRIBS - 1. size, type, and normalized all work as before.
relativeoffset is new. Vertex formats are associated with vertex buffer bindings from glBindVertexBuffer. So every vertex format that uses the same vertex buffer binding will use the same buffer object and the same offset. In order to allow interleaving (where different attributes need to offset themselves from the base offset), relativeoffset is used. It is effectively added to the buffer binding's offset to get the offset for this attribute.
Note that relativeoffset has much more strict limits than the buffer binding's offset. The limit on relativeoffset is queried through GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET, and is only guaranteed to be at least 2047 bytes. Also, note that relativeoffset is a GLuint (32-bits), while offset is a GLintptr, which is the size of the pointer (so 64-bits in a 64-bit build). So obviously the relativeoffset is a much more limited quantity.
To associate a vertex attribute with a buffer binding, use this function:
The attribindex will use the buffer, offset, stride, and divisor, from bindingindex.
Note that you still have to enable attribute arrays; this feature doesn't change that fact. It only changes the need to use glVertexAttribPointer.
This can be bit confusing, but it makes a lot more sense than the glVertexAttribPointer method once you see it. The simplest way is to go back to the Vertices example from the interleaving section. We have this struct of vertex data:
struct Vertex
GLfloat position[3];
GLfloat normal[3];
Glubyte color[4];
Vertex vertices[VERTEX_COUNT];
Using glVertexAttribPointer, we bound this data like this:
glBindBuffer(GL_ARRAY_BUFFER, buff);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast<void*>(baseOffset + offsetof(Vertex, position)));
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), reinterpret_cast<void*>(baseOffset + offsetof(Vertex, normal)));
glVertexAttribPointer(2, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(Vertex), reinterpret_cast<void*>(baseOffset + offsetof(Vertex, color)));
Now, here is how we would do it using the new APIs:
glBindVertexBuffer(0, buff, baseOffset, sizeof(Vertex));
glVertexAttribFormat(0, 3, GL_FLOAT, GL_FALSE, offsetof(Vertex, position));
glVertexAttribBinding(0, 0);
glVertexAttribFormat(1, 3, GL_FLOAT, GL_FALSE, offsetof(Vertex, normal));
glVertexAttribBinding(1, 0);
glVertexAttribFormat(2, 4, GL_UNSIGNED_BYTE, GL_TRUE, offsetof(Vertex, color));
glVertexAttribBinding(2, 0);
That's much clearer. The base offset to the beginning of the vertex data is very clear, as is the offset from this base to the start of each attribute. Better yet, if you want to use the same format but move the buffer around, it only takes one function call; namely glBindVertexBuffer with a buffer binding of 0.
Indeed, if lots of vertices use the same format, you can interleave them in the same way and only ever change the source buffer. This separation of buffer/stride/offset from vertex format can be a powerful optimization.
Note again that all of the above state is still VAO state. It is all encapsulated in vertex array objects.
Because all of this modifies how vertex attribute state works, glVertexAttribPointer is redefined in terms of this new division. It is defined as follows
void glVertexAttrib*Pointer(GLuint index, GLint size, GLenum type, {GLboolean normalized,} GLsizei stride, const GLvoid * pointer)
glVertexAttrib*Format(index, size, type, {normalized,} 0);
glVertexAttribBinding(index, index);
GLuint buffer;
glGetIntegerv(GL_ARRAY_BUFFER_BINDING, buffer);
if(buffer == 0)
glErrorOut(GL_INVALID_OPERATION); //Give an error.
if(stride == 0)
stride = CalcStride(size, type);
GLintptr offset = reinterpret_cast<GLintptr>(pointer);
glBindVertexBuffer(index, buffer, offset, stride);
Where CalcStride does what it sounds like. Note that glVertexAttribPointer does use the same index for the attribute format and the buffer binding. So calling it will overwrite anything you may have set into these bindings.
Similarly, glVertexAttribDivisor is defined as:
void glVertexAttribDivisor(GLuint index, GLuint divisor)
glVertexAttribBinding(index, index);
glVertexBindingDivisor(index, divisor);
So again, calling it will overwrite your vertex attribute format binding.
Multibind and separation
|Core in version
|Core since version
|Core ARB extension
The separation of attribute formats from the buffers that contain storage for them is a powerful mechanism. However, it is often useful as a developer to maintain the same format while quickly switching between multiple buffers to pull data from. To achieve this, the following function is available:
This function is mostly equivalent to calling glBindVertexBuffer (note the lack of the "s" at the end) on all count elements of the buffers, offsets, and strides arrays. Each time, the buffer binding index is incremented, starting at first.
The difference between such a loop are as follows. buffers can be NULL; if it is, then the function will completely ignore offsets and strides as well. Instead, it will simply bind 0 to every buffer binding index specified by first and count.
Matrix attributes
Attributes in GLSL can be of matrix types. However, our attribute binding functions only bind up to a dimensionality of 4. OpenGL solves this problem by converting matrix GLSL attributes into multiple attribute indices.
If you directly assign an attribute index to a matrix type, it implicitly takes up more than one attribute index. The number of attributes a matrix takes up depends on the number of columns of the matrix: a mat2 matrix will take 2, a mat2x4 matrix will take 2, while a mat4x2 will take 4. The size of each attribute is the number of rows of the matrix.
Each bound attribute in the VAO therefore fills in a single column, starting with the left-most and progressing right. Thus, if you have a 3x3 matrix, and you assign it to attribute index 3, it will naturally take attribute indices 3, 4, and 5. Each of these indices will be 3 elements in size. Attribute 3 is the first column, 4 is the second, and 5 is the last.
OpenGL will allocate locations for matrix attributes contiguously as above. So if you defined a 3x3 matrix, it will return one value, but the next two values are also valid, active attributes.
Double-precision matrices (where available) will take up twice as much space. So a dmat3x3 will take up 6 attribute indices, two for each column.
Non-array attribute values
A vertex shader can read an attribute that is not currently enabled (via glEnableVertexAttribArray). The value that it gets is defined by special context state, which is *not* part of the VAO.
Because the attribute is defined by context state, it is constant over the course of a single draw call. Each attribute index has a separate value.
The initial value for these is a floating-point (0.0, 0.0, 0.0, 1.0). Just as with array attribute values, non-array values are typed to float, integral, or double-precision (where available).
To change the value, you use a function of this form:
void glVertexAttrib*(GLuint index, Type values); void glVertexAttribN*(GLuint index, Type values); void glVertexAttribP*(GLuint index, GLenum type, GLboolean normalized, Type values); void glVertexAttribI*(GLuint index, Type values); void glVertexAttribL*(GLuint index, Type values);
The * is the type descriptor, using the traditional OpenGL syntax. The index is the attribute index to set. The Type is whatever type is appropriate for the * type specifier. If you set fewer than 4 of the values in the attribute, the rest will be filled in by (0, 0, 0, 1), as is the same with array attributes. And just as for attributes provided by arrays, double-precision inputs (GL 4.1 or ARB_vertex_attrib_64bit) that having more components than provided leaves the extra components with undefined values.
The N version of these functions provide values that are normalized, either signed or unsigned as per the function's type. The unadorned versions always assume integer values are not normalized. The P versions are for packed integer types, and they can be normalized or not. All three of these variants provide float attribute data, so they convert integers to floats.
To provide non-array integral values for integral attributes, use the I versions. For double-precision attributes (using the same rules for attribute index counts as double-precision arrays), use L.
Note that these non-array attribute values are not part of the VAO state; they are context state. Changes to them do not affect the VAO.
Once the VAO has been properly set up, the arrays of vertex data can be rendered as a Primitive. OpenGL provides innumerable different options for rendering vertex data.
See Also
- Primitive
- Vertex Rendering
- Conditional Rendering
- Vertex Attribute
- Vertex Specification Best Practices
- Category:Core API Ref Vertex Arrays: Reference documentation for vertex array setup functions.
- Category:Core API Ref Vertex Specification: Reference documentation for functions that affect certain state used to render.


text:
The months of June, July and August are for many a time to get away, relax and find a few weeks to go on vacation with the family, but for college basketball coaches, these are some of the busiest and most demanding months of the year. Many think when the season is over, the schedule slows down, but in reality there is very little downtime for coaches in today's culture of college basketball.
Many times, the work is just beginning when the season ends. There's a saying in the industry that recruiting is like shaving -- miss a day and you look like a bum. This has never been more true. The summer is no vacation!
Below is a checklist of 12 critical things coaching staffs do at a time of year when the program is less visible to fans and supporters:
1. Ensure admission, eligibility and housing are taken care of for players
Making sure your signed prospects have registered with the NCAA clearinghouse and filling out their admissions paperwork and housing applications are priorities for the recruiting coach in June. All the paperwork must be filed, and official transcripts must be sent to both the clearinghouse and the admissions office. It is important that the prospect is admitted before the start of summer school so he can participate in summer conditioning and workouts.


text:
A roof is one of the most essential elements of any house. A faulty roof can invite a great deal of other problems for not just your home but also for those living in the house. Every year, hundreds of homeowners call a roofing contractor for roof repairs. There are a number of things which tend to weaken a roof and before getting these damages repaired, it is always best to get them inspected by a contractor.
Often people ignore the various underlying causes of roof damage which ultimately leads to bigger problems in the future. Given below are some common causes of roof damage.
1. Poor Maintenance – By ignoring regular inspection and maintenance checks on your roof, you will actually end up ignoring various problems, damages and leaks. At an earlier stage, all these can get repaired at little or no cost. However, procrastination their repair simply transforms them from a minor problem to huge damage.
2. Hail Damage – A severe hailstorm can dislodge the granules from the shingle's surface ultimately compromising the roof. These coloured granules protect the asphalt layer that's present below the shingles from sun's exposure. Absence of these granules can pave way for UV rays which can then quickly attack asphalt layer.
3. Wind Damage – Wind can loosen the shingles, nails and other roofing material that's present on it. In such situations, a moderate blow of wind also has the power to lift those already loosen shingles leading to major damage. Roof repair happens mostly because of wind and hail which bring severe damage to the roof.
4. Other Weather Conditions – Almost all traditional singles get affected by Mother Nature. Colours and materials of almost all roofs get damaged gradually by Sun, snow, rain, ice and humidity. Harsh pollutants and chemicals that are present in the air also breakdown the material which is present as the component of shingles.
5. Improper Installation – Getting the roof installed, repaired or replaced by an experienced roofing contractor is extremely important. In fact, it can make a huge difference as roofs that are improperly installed bring nothing but leverage on the part of security. Roof repair should always be done by trained people.
With time, roofs get damaged and hence as a homeowner it's your responsibility to carry out regular maintenance checks to get an overall idea about the condition of the roof. In case you find anything wrong with your roof, call a professional roofing contractor immediately.


text:
Wednesday, July 22, 2009
Retrospective: Fantasy Wargaming
I call Fantasy Wargaming "bizarre" for a number of reasons. Firstly, there's its title. Now, I'm probably the last person who'd ever complain about a RPG that proudly proclaims its connection to the earlier hobby that spawned it. Yet, by 1982 (or even 1981, when the introduction was written), almost no one -- certainly no one inside the hobby -- used the term "fantasy wargaming" to describe Dungeons & Dragons or other RPGs. It's true that, as late as 1976, TSR still subtitled D&D products "Rules for Fantastic Medieval Wargames Campaigns," but that usage had been discarded years before this book was published. Consequently, Fantasy Wargaming had an odd "out of time" quality to it when I first bought it, as if it'd been trapped in amber since the days when dinosaurs ruled the earth and the term "roleplaying game" had not yet entered common use. (To be fair, they do use "roleplaying game" in the text occasionally and note that it is roleplaying that distinguishes fantasy wargaming from other types of wargaming.)
Another reason I deem this volume bizarre is the disdain it exhibits not just toward existing RPGs -- that's a fine old school tradition -- but toward roleplaying generally. The authors I surmise based on comments here and there were Napoleonic wargamers at Cambridge who one day decided to give "fantasy wargaming" a whirl to see what all the fuss was about. Though they enjoyed roleplaying as "pure escapism," they nevertheless found it lacking and this book is the result of their attempt to correct the deficiencies they saw in it.
Most of those deficiencies were in the realm of "realism," something that powerfully dates this book as a product of the late Golden Age, when dueling articles on the physics of falling damage were regular contents of Dragon. Of course, the authors of Fantasy Wargaming were much more interested in social/historical realism, which is why the book is filled with broadsides against most fantasy, both literary and gaming, which fails to take into account this or that little bit of trivia about the European Middle Ages. The end result of this is a game -- assuming it is even playable, which is far from certain -- whose nitpickiness about historical minutiae puts Chivalry & Sorcery to shame.
Unlike C&S, though, there's not a lot in Fantasy Wargaming that can be profitably mined for other games. There are some interesting bits about historical arms and armor and social structures, but all of that could be found in better written and detailed scholarly books. Beyond that, perhaps the most entertaining section is the ranking and stats for the hierarchy of Hell, with a corresponding ranking of the powers of Heaven -- just in case you ever wanted to know the combat abilities of the Blessed Virgin Mary or St. Francis of Assisi. Most rules are written both suggestively and opaquely. That is, they imply much but say very little. That's probably why, as a youth, I remained convinced that Fantasy Wargaming was a playable game, even though I never actually inflicted it on my friends, as I did DragonQuest.
So why did I ever buy this book? It's hard to remember this, but, even in 1982, roleplaying was big. It was a huge, huge fad and, while the total volume of product was probably much smaller than what is released today, there was still enough of it, available through a wider variety of outlets than nowadays, that I was offered many opportunities to dabble and see what the hobby was like outside the TSR/D&D orbit. Sometimes, this brough into contact with gems like Call of Cthulhu, but, more often than not, it gave me stuff like Fantasy Wargaming. At the time, I was looking to shake up my D&D campaigns and inject a bit more "realism" into them. I quickly realized that, even if that goal were itself a worthy one, Fantasy Wargaming wasn't going to help me achieve it.
The funny thing is that I still own a copy of this book. For all its oddities -- or perhaps because of them -- I pull it off my shelf every now and again and read through it, if only to remind myself that, while its focus may have shifted over the years, the craziness of gamers has remained a glorious constant of the hobby for as long as I've been involved in it. May that never change.
38 comments:
-shaking a fist in anger-ReplyDelete
Ooh! You torpedoed me, James. I've been slogging my way through Fantasy Wargaming's ever-so simple rules section with an eye on posting about this weird book over on Pole and Rope. It seems you beat me to it.
I suppose I can take some measure of relief from the fact that I can now put this book away and never again have to think about astrological signs influencing the success of my spells take affect on a bonnacon.
The funny thing is that I still own a copy of this book.ReplyDelete
I'd say it's worth owning just as an example of the historical record for RPGs.
But that's only because I don't really want to admit that I've kept my copy that I've treasured since I found it in a used book store a couple decades back purely because it contains combat stats for the Virgin Mary, which somehow I continue to find ridiculous enough to keep the book on my shelf.
I bought this book a few months back and recently finished reading it. Though it makes a crappy source of ideas for D&D, I have found plenty of inspiration there for quasi-medieval fantasy games like Dragon Warriors (which I'm currently running). An odd duck, to say the least, but worth the $3 and change I paid for it.ReplyDelete
I also picked this up when it came out, though all I remember about it from back then was that I couldn't make heads or tails out of it! Still have it, though...maybe I should pull it out and give it a flip through!ReplyDelete
Huh. You know I never even bothered looking at the copyright date on mine...I just assumed it was from the earliest days of the hobby (circa 1978) based on the content, the format (no box!), and discussion o fiction. Plus I pillaged mine from a used book store and the cover (dust jacket!)had water damage making it look older.ReplyDelete
I've kept mine, too, also as a relic. I HAVE played the game (even came across some character sheets from ancient times), and it seemed really cool and interesting to me as a kid...especially the multiple XP system and the lack of a "thief" class. It falls down in combat, being still in its wargame roots.
I still page through it every now and then as I find it "food for thought"...at least the first five chapters or so.
I wonder what the authors would say now about their product in hindsight!ReplyDelete
I picked up a copy of this about 10 years ago at Half-Price Books for about $3.00. I still think it has value as a system-free sourcebook on medieval gaming. There's some good info in there about life in the Middle Ages. However, Cthulhu Dark Ages offers that as well, with a playable system on top. Still, as you say, James, FWG is fun to read occasionally, if only to ask yourself what the Hell these guys were thinking.ReplyDelete
I got it when it hit the remainder tables in early eighties. I lost it when loaned to a friend about 13 years ago. Remember the evocativeness of the world it alluded to. Never actually played it but hoiked some of its 'world' concepts into my own. Still think of it occasionally. The cover pic carried a positive charge. Thanks.ReplyDelete
Bizarrely there was a second book titled "Fantasy Wargaming" put out later in the 80s from Britain. It was also written by a fuddly historical miniaturist. Guess one bite at the apple was not enough.ReplyDelete
I guess if a Northumbrian saint can become a principal Greyhawk deity I shouldn't have been weirded out by the stating up of the Virgin Mary and St. Francis (out many times a day can he cast Animal Friendship again?)--but I was at the time. I'm guessing Galloway and company weren't dragged to CCD class.
- AnonymousJuly 22, 2009 at 10:50 AM
Bruce Quarrie was one of the leading figures in tabletop wargames in the UK for many years. I have some of his historical books, but not this fantasy one - actually, anyone who's been wargaming in the UK long enough probably can't avoid having somethig of his on their shelves. The others I don't recognise at all.ReplyDelete
I see this one at used bookstores every now and then and I always end up picking it up, thumbing through it and putting it back down.ReplyDelete
I'll always remember seeing this book everytime I went to the mall and—as usual—headed straight for the RPG section at Walden Books. It always caught my eye, but I always picked AD&D books over it.ReplyDelete
Then, when I moved to Austin, I saw about 100 copies of it at Half-Priced Books for $3. There was no way I could resist.
It really captures what I wanted out of D&D as a kid. Heck, for me, this is the real "fantasy heartbreaker". It promises me something quite unlike D&D that appealed to me more, but it doesn't deliver.
These days, though, my tastes have changed—from less historical to more pulp.
I also think that a "historically realistic" magic system (to the extent that there can be such a thing) generally isn't so interesting in play. Researching your target, gathering foci, cross-referencing correspondences, and performing secret rituals in the right place at the right time doesn't exactly scream coöperative adventure. Not that it might not be quite enjoyable in specific circumstances...just not generally.
I still find a lot of inspiration in that book, though.
A bit of trivia: It actually came in two sizes. I have the larger A4-ish sized one, which is what I've seen the most, but I've also seen a digest/A5 sized version. As far as I know, the smaller one is exactly like the larger, just smaller.
Oh, dear... must acquire.ReplyDelete
I also own a copy, and I also keep it on the shelf for some unknown psychological reason. I enjoyed and occasionally referred to the section on villages and population density.ReplyDelete
Ah, realism. The bane of the golden age, the bane of 3.x.ReplyDelete
So this is the infamous game with the states for the Virgin Mary.
Either way all this moralizing superiority could almost put one in mind of certain others I might name in the hobby ;).
I posted a couple of small entries on this book a few weeks ago, inc. one with a scan of the page of infamous holy stats if anyone's curious - I still find the piety points system interesting.ReplyDelete
I've had my copy of this from back in the 80's. I seem to remember getting it from theReplyDelete
Science Fiction Book Club. Pretty sure I remember something about social standing or weird background random tables in it that I made my players use once.
I never found a use for it, but like the others, couldn't part with it for a long while.ReplyDelete
--I did pick it up again, only to get rid of it again.
I bought my copy when it was originally released as well. And I still own it. But then I am a collector of role-playing games. I haven't looked at it in years though. maybe it's time for another read.ReplyDelete
this was, if i recall correctly, the first fantasy rpg i played after AD&D and D&D. it's not entirely unplayable, but it does require a lot of streamlining. it also requires players who are not going to play the rules too hard, as they are written in "British wargamer" mode, which is to say, with the assumption that the players will be exercising judgment.ReplyDelete
to me, though, it is mainly of interest for the concepts underlying the magic/religion unified system, which presented a sort of proto-Mage:TA idea that the world was strongly affected by the beliefs of humans about it, and by implication was given actual form by those beliefs.
someone above mentioned that the magic was flavored as skulking around, secret rituals and whatnot. that's not entirely true, though. combat wizardry is very much a part of the system.
someone else mentioned that there were no differences between the large and SFBC editions. that is mostly true, except that the large book was missing a page of weapon stats included in the SFBC edition, while the SFBC edition was missing a digit from one of the spell descriptions. yeah, like i said, i actually played the game, with a group and everything. other than those differences (plus the size difference and the cover being a dustjacket in the SFBC and a printed one in the large edition), though, the books are indeed identical in content as far as i am aware.
another person said that there was no "thief" class, which is basically true. the fighter and thief professions are rolled together into the same experience level. in a one-off i ran sometime in the mid-'80s, i separated the two, which was simple enough to do.
i still have my SFBC edition (but not my large edition), and i still re-read it for ideas on occasion. the first, sourcebook, half is of more use to me now, but i still look at how they put together their magic/religion unified system for ideas in my own game design sketches.
re-reading what i've written here, i think that it's obvious that i actually like the game and find it playable (with some relatively minor tweaking), and i find it a little strange to realize that i may be currently the only person in the world who does.
Oh, wow.ReplyDelete
My dad bought this for me back in 1982 as a Christmas present, but I don't think I actually read it in depth for at least six years or so. It's definitely an odd duck of a book.
I think I've still got my copy somewhere...
The system of correspondences and astral signs pops to mind whenever I look through the rules in GURPS Cabal.
"The system of correspondences and astral signs pops to mind whenever I look through the rules in GURPS Cabal."ReplyDelete
not surprising. Ken Hite credits FW as the inspiration for the system of correspondencies in the bibliography of that book.
I have both the smaller and larger sized books around here somewhere. Looked through it a few times, but never really did anything with it. AD&D was, and is, the game of choice for me!ReplyDelete
Nice. I've actually got two copies of this, one in each size, which I collected from various used bookstores over the years. I've never sat down and read it in detail, just skimmed, but now I am inspired to. Unfortunately I'm pretty sure both my copies are currently packed away in storage.ReplyDelete
I feel confident that I will never, ever sell my copy of this book (I have the original hardcover).ReplyDelete
This book looked like nothing else I had seen in RPGs at the time. The matte, textured finish on the hardcover, the medieval-woodcut-style art, the regular-mainstream-book-style layout, the yellow paper... I love it! Never mind that the time I tried to run it was pretty disappointing (given how much I could not understand how the rules worked).
Honestly, I think one of the reasons I love Burning Wheel so much is that the core books look a lot like FW! :D
I there's a lot of interesting general info about the middle ages in there, and some interesting observations about "realistic" medieval gaming.
So, yes, quite an odd relic of bygone days, but one of ramshackle beauty.
To echo a couple of earlier comments: the discussion of magic is definitely mineable for D&D or similar games. Just the presentation of the Qabbalist as a weird, liminal figure in his community is quite evocative and food for thought.ReplyDelete
"Honestly, I think one of the reasons I love Burning Wheel so much is that the core books look a lot like FW! :D"ReplyDelete
until i read that, the similarities hadn't really crossed my mind. there are some definite aesthetic parallels between them.
As for my comments about magic: In truth, I was really commenting on the parts of the magic system that I found most interesting—and other similar magic systems and my own attempts at something similar—more than the specifics in this book.ReplyDelete
And that'd be a topic of its own.
I agree with Robert Fisher that FW is pretty much the quintessential Fantasy Heartbreaker. You can tell that the author is utterly convinced that his house-rules-turned-ruleset is the greatest thing to ever grace RPGs. It's also pretty clear that the author's playstyle was pretty insular, and that his group never encountered, much less played, any RPGs outside of D&D. Heck, even though this was published in 1982, I'd wager that they never read any of the AD&D books; it feels much more like something that grew out of the OD&D books (and perhaps a supplement or two).ReplyDelete
What's actually interesting is that, while the authors talk about D&D in places, they only admit to ever having played Tunnels & Trolls.
I found it in the Half Priced Book Store in Houston. Funny thing is I saw it 8 months before and it was still there. The game is kinda good but it sucks more than it is good. QUESTION: Has anyone ever tried to play it?ReplyDelete
You're right, I had forgotten that they reference T&T at one point. Also, I suspect that they at least read through the Chivalry & Sorcery rules, since they seem to make a couple of backhanded swipes at C&S in the book.
Mind you, for all that it's overwritten for the most part, I daresay that C&S, compared to FW, is by far the better written ruleset.
I lost my copy of this and even forgot what it was called. All I rememered about it was that it was ODD! Now I can look for a copy. Thanks for mentioning it!ReplyDelete
One thing I'm surprised you didn't mention is the literature section's decidedly pulp fantasy orientation, being openly hostile to much of the non-pulp fantasy of the 70s such as The Riddlemaster of Hed and The Chronicles of Thomas Covenant.ReplyDelete
- skinnygJuly 28, 2012 at 8:36 PM
Apparently the book was written some years before it was finally published. Reading it is a little like trying to derive the modern AD&D from Eldritch Wizardry. The authors were Cambridge postgrads who began goofing with this stuff in 1974. As for why you bought it, probably the same reason I did: I was looking for a way to augment my campaign, and the cover looked really cool.ReplyDelete
- skinnygJuly 28, 2012 at 8:36 PM
Apparently the book was written some years before it was finally published. Reading it is a little like trying to derive the modern AD&D from Eldritch Wizardry. The authors were Cambridge postgrads who began goofing with this stuff in 1974. As for why you bought it, probably the same reason I did: I was looking for a way to augment my campaign, and the cover looked really cool.ReplyDelete
- mumphry999October 21, 2012 at 11:48 PM
I played this game back in middle school with a creative GM and he used the magic system like a wizard himself, he seemed to enjoy the formulae and the implications of the system. Was a wonderful time. thanks for the review.ReplyDelete
Another blog has an excellent history of this book, answers many questions and clears up a lot of assumptions above. https://mikemonaco.wordpress.com/bruce-galloways-fantasy-wargaming/ReplyDelete


text:
We have had the privilege of guiding generations of clients, applying a consultative approach to managing the complexities that accompany wealth. Our offerings reflect the distinct needs of the families we serve, including coordination with other professional advisors such as CPAs and attorneys to help ensure our service is in harmony with all aspects of your life.
From private wealth management to customized estate planning and wealth transfer, you can turn to us for comprehensive financial planning and leading-edge resources. Our access to technology, research and specialized knowledge allows us to nimbly adapt to your needs and objectives.
You've spent a lifetime building a legacy. Let our prudent approach help you make the most of it.
Managing, growing and preserving wealth for generations is our highest objective.
Banking and lending solutions provided by Raymond James Bank. Raymond James Bank, member FDIC, affiliated with Raymond James Financial Services and Raymond James & Associates, Inc.


text:
Handling debt can be a daunting task, but you don't have to face it alone. You can receive debt management advice and services by contacting either of the following national organizations:
American Consumer Credit Counseling
24 Crescent St.
Waltham, MA 02154
Phone: 781-647-3377
Website: www.consumercredit.com
National Foundation for Credit Counseling
2000 M St. NW, Suite 505
Washington, DC 20036
Phone: 800-388-2227
Website: www.nfcc.org
It will be helpful to review your credit report and credit score whenever you seek out credit counseling assistance. Once a year, you can receive a free credit report. Request yours by visiting the Annual Credit Report website.


text:
Faith is like the radar that sees through the fog. ~Corrie Ten Boom
Restore a sense of connectedness within? Drop by at The Ritual (812A 49 Ave SW) on Saturday, March 2, 1:30-2:45pm as we explore this theme through discourse and lecture.
Up for a little Inner Fitness? Join us at Heavens Fitness (637 11 Avenue SW, Calgary) for a 60-minute session exploring the non-physical side of wellbeing. No experience required. Saturday, February 16, 2019, 2:00-3:00pm. Free and open to all. No registration required.
Angel Food
Mailing ListSubscribe here to receive program updates via email.


text:
Once considered an "old person's disease," arthritis actually is a painful disorder that affects people of all ages. In the United States, two-thirds of the 50 million arthritis sufferers are under the age of 65, including 300,000 children.
In fact, arthritis is the nation's leading cause of disability, and the number of sufferers will increase as more baby boomers feel pain in their joints, according to the Arthritis Foundation.
The pain index doesn't have to increase, however, say experts who cite safer, more effective treatments and advances in the diagnosis and treatment of the potentially crippling disease.
Click here to discover some common misconceptions about arthritis.
Because osteoarthritis, the most common form of arthritis, is a progressive condition, eliminating risk factors early in life can provide benefits later on. "What starts as a joint strain can progress into arthritis as cartilage gradually wears away," says Dr. Mark Miller, professor of orthopedic surgery at the University of Virginia Health System.
Here are some suggestions and information that might help keep joint problems at bay.
Diagnose earlier. Though there's no known cure for arthritis, researchers at the University of Missouri-Columbia are examining arthritic joints to determine specific genes and proteins in injured cartilage involved in onset of the disease.
"We're developing biomarker panels that may allow us to predict which joints will be affected by arthritis and determine the severity of the disease before patients have symptoms. Then we can find better ways to reverse or at least markedly slow its progression," says study author Dr. James Cook.
Supplement sunshine. Increased vitamin D levels, particularly for individuals living in northern latitudes or with dark skin, may help improve muscle strength and physical function in patients with knee osteoarthritis, according to Boston University researcher Dr. Kristin Baker.
Take birth control pills. Women taking birth control pills have tighter, more stable knee joints and more flexibility—an extra level of protection for any woman who exercises regularly. That's especially good news since women are four to eight times more likely than men to sustain a serious knee injury. Such injuries that happen early in life often have a degenerative effect resulting in arthritis in the affected joint, Miller says.
Choose flexible footwear. Clogs and stability shoes increase the load on knees, while walking shoes and flip-flops allow a natural foot motion similar to walking barefoot, which is better for knees. Flat, flexible shoes provide the greatest benefit for limiting the progression of knee osteoarthritis.
Grow new cartilage. Cartilage does not regenerate in adults, but researchers at Northwestern University hope to change that with a new material that promotes the growth of new cartilage within the body. By injecting a liquid gel around the damaged joint, bone marrow stem cells are activated to produce natural cartilage. In separate research, scientists at Duke University have grown cartilage from stem cells culled from body fat and hope to test the procedure in humans within four years.


text:
Apple,Motorola,Samsung,One Plus,Nokia
One stop solution for all your repair worries.
We have a transparent and upfront pricing.
Warranty on parts, quick pickup and delivery
Apple,Motorola,Samsung,One Plus,Nokia
One stop solution for all your mobile repair worries.
We have a transparent and upfront pricing
Warranty on parts, quick pickup and delivery
Lenovo phones can become the lifeline of your daily chores be it personal or professional with their amazing features and usability. At times, your phone may develop problems or you might have by any chance dropped it and broke the screen. In any of these scenarios, you will urgently need assistance. This is where HelpForSure jumps in.
Lenovo Service Center at HelpForSure will solve all minor and major problems of your phone. Be it a broken screen or cracked display or poor battery life or by any chance water has entered into your phone – HelpForSure has the perfect solution for your Lenovo phone. We offer repair services for all Lenovo phone models.
HelpForSure Lenovo Service Center offers the best solution in the least turnaround time. Our service is there to serve you anytime, anywhere, so just relax.
Famous and known for its airport, Birati, Nimta, Kadihati, Jangalpur Patna, Gouripur, and a substantial portion of what is now Netaji Subhas Chandra Bose International Airport were part of the North Dumdum Municipality, which was founded in 1870. North Dum Dum-Kolkata, the Joy City, is one of India's most beautiful cities. This place is the go-to location for all sorts of travelers, including families, children, and couples, although it is particularly favored by groups. February, March, October, November, and December are the best months to visit sights in this town.
You could be in any part of India to avail our services. We have office in Bangalore only we provide a free home pick up and drop service. For all other cities we have free courier service.
We only use genuine quality parts where possible. If original parts are not available we will source the next best thing OEM parts from the same factories that produce the parts. We will inform you about the type of spare parts used for service.
We have several payment options: 1). Cash on delivery, 2). Payment through our payment gateway via netbanking or debit/credit card, 3). Paytm
Place a service request through the Repairs section or call us at 9980879514. We visit you, pick your mobile device, diagnose it, fix it and deliver it – making the process completely hassle free for you.
Most repairs are carried out within 24 hours; broken screen repairs are completed on the same day! Some high level repairs such as liquid damage can take longer.We pride ourselves on our quick turnaround times. However, on some occasions our turnaround times can be extended due to a high level of repairs or parts availability.
Helpforsure charges Rs. 299/- for diagnosis. This is collected at the time of phone pickup.The price you see on the website is inclusive of this service charge and this gets adjusted in the final invoice. In case of any additional charges, customer would be intimated before mobile servicing is begun.
Our repairs carry a limited 90 days warranty. Repairs of Liquid Damaged or Water Damaged phones do not carry any warranty.The warranty only covers issues that were fixed by Helpforsure. Any other issues with other components will not be covered by Helpforsure. We expect customers to check the phone throughly for any side issues at the time of delivery. Any additional issues like speaker/mic issues or network issues should be reported within 24 hours of delivering the device.
We have a section of the website dedicated to find out if your device is under warranty. Please check here
SandeepIPhone 6 customer Kormangala - Bangalore


text:
Year of publication
- 2020 (1) (remove)
Document Type
- Master's Thesis (1) (remove)
- English (1) (remove)
Has Fulltext
- yes (1)
Is part of the Bibliography
- no (1) (remove)
- Optik und Mechatronik (1) (remove)
This research project is of particular importance since there is a lack of adequate data on pediatric eye and vision disorders in Russia, particularly in the Volga region. In the present study, we estimate the prevalence of vision disorders among school-aged children who participated in a vision screening program in Samara, Russia. The relationship between learning-related visual dysfunctions is explored in depth, such to illustrate the connection between vision and learning. Hence, a key feature in this study is the inclusion of binocular vision disorders among the conditions tested.


text:
Putin Tries To Influence Former Soviet States
This is MORNING EDITION from NPR News. Good morning. I'm David Greene.
Writer Lawrence Sheets once described the Soviet Union as an ill-fitting, stained glass mosaic. That is certainly not the image any Westerners had as they watched the Soviet collapse in 1991.
LAWRENCE SHEETS: We saw the Soviet Union as a monolith, through a few symbols like Red Square or men in fur hats, empty store shelves - these sorts of things.
GREENE: Sheets is a familiar voice on MORNING EDITION. From 2001 to 2005, he was NPR's Moscow bureau chief. He just wrote a book called "Eight Pieces of Empire: A 20 Year Journey Through the Soviet Collapse." We called Sheets for some insight at what appears to be a defining moment.
Vladimir Putin just won an election in Russia, returning him to the presidency. That despite anti government demonstrations in December, the largest protests in Russia since the Soviet Union fell.
Whatever the future holds in Russia, Sheets says it's important to remember that the former Soviet empire remains an ill-fitting mosaic. There are nations like Estonia, a full fledged democracy and NATO member. A world away, there are the central Asian countries like Uzbekistan and Turkmenistan, which have authoritarian leaders. Russia, under Putin, will likely try to hold as much influence as it can over the former Soviet states. But Lawrence Sheets says that won't be easy.
SHEETS: The further you get from Moscow and the further away you get from the Russian federation in these former Soviet Republics, the less attention, probably, is paid to Mr. Putin. It's more of waiting and watching, and seeing how it's going to impact these various new countries, which are definitely going their own way, whether that be an authoritarian direction or a more democratic direction.
GREENE: The story, once the Soviet collapse happened, was that this place and these countries are just going to at some point take on Western-style democracy. It's just a matter of time. Now, looking back over the last 20 years, what is the story line, if you were to sum it up?
SHEETS: Well, I think it should be object lesson for all of us, about the nature of empires themselves. When the Soviet Union broke apart there was this euphoria in the West that, just as we viewed the Soviet Union as a monolith, we viewed what would become of the Soviet Union as this great thing where there's no question, oh, these countries are going to become Western democracies just like us, overnight. And, of course, nothing of the sort has happened.
I was in Moscow at the time, and there was this giddiness that you sensed in the Western media that it's all changing and they're going to be like us.
GREENE: Didn't you feel the same sense of giddiness from some Western journalists recently, when the protests were on the streets of Moscow? It felt like that was another moment when some Western observers were saying, ah, now the time has come for the big country from the former Soviet Union, Russia, to kind of, you know, to overthrow the authoritarian leader and become a real "democracy," quote, unquote.
SHEETS: Well, I think there's always this storyline which takes on a life of its own. And I think that the protests in Moscow, no question, would surprise the Kremlin. There was no question it surprised Vladimir Putin. We know that. But Moscow's a city of 15 million people, and Russia's a country of 140 million people. And perhaps sometimes what looks like an eminent revolution is much more complicated.
GREENE: Lawrence Sheets, your book takes us through a 20 year journey through the Soviet collapse. Look forward to the next 20 years, if you can. Where is the former Soviet Union and all these different countries, where are they going?
SHEETS: There's no question that this next six year period in Russia, under Vladimir Putin, is going to be one, probably, of great, I would say, unpredictability. There's no question Russia's a very changed place from what it was six to eight years ago. Just the fact that demonstrations - large demonstrations in Moscow, took place at all, were indicative of that.
People think about the breakup of the Soviet Union as having been 20 years ago, but in reality many of the conflicts which erupted as a result of the Soviet breakup are simply frozen and are low boil conflicts, low intensity conflicts, right now, which could easily re-erupt.
They haven't been solved. There haven't been formal peace agreements signed. People are still firing at each other. There are cease fires which hold up in a shaky fashion at best. But you cannot continue to have all of these frozen conflicts in places like Georgia or in places like Azerbaijan and Armenia and expect them to either blowup or be resolved at some point. It's either one or the other.
GREENE: Lawrence Sheets is the author of, "Eight Pieces of Empire: A 20 Year Journey Through the Soviet Collapse."
Lawrence, thanks so much for joining us.
SHEETS: Thank you, David. It was great. Transcript provided by NPR, Copyright NPR.


text:
Friday, May 27, 2011
Daily Outfit! {5.27.11}
Dress: Lemon Tree Dress, made in May 2010. Belt omitted for comfort.
Jewelry: Seashell bracelet, gift from my first boss
Shoes: Sadly discontinued Simple peep-toe flats
Unmentionables: Nude bike shorts and a nude bra.
Sunglasses: plastic rhinestone cateyes, gift from a friend
Readers, the nude bike shorts are a revelation. I bought them yesterday at American Apparel, even though I dislike shopping there for a number of reasons that I won't go into right now. They were $24, which is ridiculous. I hope you won't judge me when I say I've made a pattern from them (with a few fitting changes) and am planning on making a bunch.
It's become clear that I need more comfy shoes. Any suggestions for casual peep-toe flats? I really like the Keds/sneaker style ones.
Oh, I should mention the sunglasses are non-prescription, so I can't actually wear them out in the world. But I adore them. They're just cheap plastic ones, not the kind you can put a prescription in. Any thoughts on similar styles that can be taken to an optometrist?
Gertie, Girl Reporter! Is three posts in one day too much?
61 comments:
Three posts a day from one of my favorite bloggers is not too much! Looking forward to all the things I will learn from you.ReplyDelete
You look so cute! I love your posts so I don't think 3 are too many.ReplyDelete
Can I ask what may be a silly question though? Why the nude bike shorts? I mean I understand the nude part but any reason for the shorts part?
I was just about to say the SAME EXACT THING, GirlSpazDog! Hurrah for Gertie's new freelance lifestyle--it's definitely making my work days more interesting already!ReplyDelete
I got some cant eye ray bands. I origninaly got them as just normal glasses but i loved them so much i put perscription lenses in. I ve blogged about it here.
Love that style dress, i have just started to get into bullet bras and am looking to make some dresses like that to bring out the pointiness!
Ais x
If you're looking for some fabric for bike shorts to wear under skirts and dresses, I highly recommend Under Armor Heat Gear. It's super cool and comfy in the summer. I like to refer to the pairs I've made as "boxer briefs for ladies."ReplyDelete
Thanks, ladies!ReplyDelete
Christi, the shorts are really comfortable because they're cotton, come up to my waist, and have the slightest bit of compression for a little shaping. Plus they eliminate the "chub rub" when walking!
Boo Boo Kitty beat me to it. I was going to say Ray Bans too! I'm obsessed with their New Wayfarer's right now and am buying a pair as soon as I save up a bit.ReplyDelete
- CarolynMay 27, 2011 at 12:47 PM
Nice.. I two have bought something in store for a pattern its a smart thing to do and fun. : )ReplyDelete
I have and love these Simple Shoes peep toe flats but they're unfortunately not making more right now. I'm about to wear mine out, so I've started harassing Simple to bring the style back.ReplyDelete
Nice outfit! I need to either get some kind of bike shorts like those -or- make some split slips so I can wear more skirts.ReplyDelete
Have you considered split slips, Gertie? (Or anyone else)
I'm wearing a split slip at the moment, but have to admit, I'd rather have comfy cotton knit. Nylon in a warm spring, soon-to-be summer is not pleasant.ReplyDelete
I am so torn about AA to. I like a lot of their products, and their "Made in the USA" beliefs, but boy, Dov seems like megalomaniacal monster. I hate the way their ads and branding "talk" about women and female sexuality. It's incredibly distressing. And they seem to have had a huge influence on 20something women, and how their view themselves, their bodies, and their "value" to men.ReplyDelete
Did you eliminate any outside seam on your bike short/pettipants pattern? That's my favorite since not only does it make it one piece to cut out on the fold, I don't like how the outside seam looks...ReplyDelete
Love seeing the lemon dress with your high pony!
cute flats suggestion: not peep-toe, but fossil maddox flats come in all kinds of solid and printed canvas and leathers, plus they are very comfy!ReplyDelete
Love the lemon tree dress. And I like the idea of wearing the biker shorts to elminate the "chub rub".ReplyDelete
So cute, I love outfit posts! :)ReplyDelete
Ashley x
ps, I recommend Luvees to eliminate chub rub, they're really nice and breezey as they're lace. I wear normal underwear underneath too and its so nice not to have sore thighs at the end of the day! x
very cool, I've always wondered what you wore day-to-day what with all the pretty dresses you're always making.ReplyDelete
Love the dress. I have a pair of Toms shoes this spring and they are super comfy. I think they work with skirts and dresses as well. Plus a kid in Africa gets a pair when you buy a pair. Mine are the gray but I'm thinking of getting the neutral and doing some embroidery on them. I'm more into the hippy dippy trippy look then you though I think.ReplyDelete
- AnonymousMay 27, 2011 at 1:25 PM
OMG! You look so friggin' Cute!ReplyDelete
Ha. I forgot to add that the whole point of saying I have the same shoes as you was to encourage you to join me in harassing @simpleshoes about it on Twitter. Maybe they will bring them back!!ReplyDelete
"Plus they eliminate the "chub rub" when walking! "ReplyDelete
OH my goodness YES! Houston's heat and humidity has been the bane of my skirt wearing existence.
I didn't know bike shorts came in nude.
Regarding the abundance of posts, keep it up. I love reading what you have to write!
Love this dress! Gorgeous!ReplyDelete
$24 for bike shorts made in this country is quite reasonable. I think Anthropoligie is far more overpriced. Especially when you see the amount they steal from etsy... Buy American people! Lets keep our money here! Even if it seems more expensive, you are paying an american and it will all come back into our economy. Also, how many washes do you get out of your $5 tee shit? I counted 2. That's no deal to me if I still have to buy a new one right away.ReplyDelete
Michelle, I would normally agree if the company's treatment of women were better. They need to make a lot of changes before I would shop there on a regular basis, even though I like that their clothing is made in the USA.ReplyDelete
Also, it's something I could make well myself for a lot less.
I always always wear shorts under skirts and dresses in non-tights weather! I started doing it when my kids were babies and I spent a lot of time on the floor with them, I didn't have to worry as much about flashing people! Then I realized it was just really comfy- like you said, a bit of compression and eliminates thigh-rub!ReplyDelete
I wear Spanx, because I wasn't able to find nude bike shorts - but they work just as well!ReplyDelete
- JessicaMay 27, 2011 at 3:14 PM
Power to the bike shorts. I bought my first spanx style shorts this spring, and love them! No 'chub-rub' is revelation as you said. Cotton jersey under-shorts is exactly what I needed to hear to calm my pre-summer panic of wearing those expensive spandex spanx in the summer heat! Perhaps a tutorial?ReplyDelete
By the way, the more posts the better!
LOVE the dress! And it's comfy too? I need one!ReplyDelete
The chub-rub elimination via the cycling shorts is genius! I tried mens cotton woven boxers before but the fabric in between my thighs kept bunching up into a wad as I walked down the street (not a comfy feeling :( !). Last summer I came across some cheap 'n' nasty light beige cotton leggings, so I cut them off to cycling short length - but because I hadn't finished the hems (I didn't know at the time how to hem them and keep the straight-stitch from breaking - as it wouldn't be able to stretch, I now know what to do LOL!) they stretched out and then rolled up my legs.ReplyDelete
Maybe I should buy a pair of cycling shorts or some Spanx (but in a bigger size so it's less about the compression & more about the comfort)!
I bought mine from walmart. Granted they only come in black or gray, but they get the job done. They are cotton with a bit of lycra in them. I am on my thirs summer wearing them and they have held up nicely.ReplyDelete
Three posts a day in fine with me. Thank you for the bike shorts tip and enjoy your new freelance work life :)ReplyDelete
Yeah! I miss Gertie, Girl Reporter!ReplyDelete
BC footwear has some cute flat peep-toe type shoes. I haven't bought any of their shoes lately, but I have some from a few years ago and I'm still wearing them and loving them! They're super comfy, but like I said, not sure about the current lines as I haven't tried them yet, but the brand has treated me well in the past.ReplyDelete
You look so good! I think you're going to be really great at this freelance work thing.ReplyDelete
Nude bike shorts sound really comfortable for "unmentionables".
And you can't have too many posts for those of us who love you!
- AnonymousMay 27, 2011 at 4:42 PM
i'm a huuuuge fan of the bike/volleyball shorts under skirts and dresses.ReplyDelete
i love these:
american made - dov charney = awesome.
You must know by now that you can never post too much, we will eat up everything you give us! With relish! (I haven't had lunch yet, obviously.)ReplyDelete
Bike shorts are an excellent idea -I tried pettipants a while back, but they felt a bit too loose and breezy.
I loved your lemon dress so much that I had to look up your original post. Silk cotton, huh? I was just over on the Fabric Mart site where they have unbelievably luscious silk cottons, plus a sale. You've given me that little nudge I needed to buy a bunch instead of just drooling over them.
Keep the posts coming!
wow, I love the outfit. I'm a spectacle wearer too, and am currently searching eBay for similar styles but for normal rather than sunglasses, but there are loads of 50s originals on there, you just have to have them glazed.ReplyDelete
- dawn sMay 27, 2011 at 5:06 PM
I wear SAS sandals. Very comfortable and the sandals don't look orthopedic like some of their styles.ReplyDelete
And chub rub is the bane of my existence. I am always wearing some chafe protecting garment.
Check out the flats at Delia's. The clothes are far too young for me, but the shoes are faaaaabulous!ReplyDelete
Never too many posts. I'm always interested in what you're up to. Besides, not long from now you'll be pushing the deadline for your book and we might have to go without posts for a while. Let's enjoy what we get when we get 'em!
Fantastic in every way, Gertie! I check your site a million times a day, anyway, so no of course you can't have too many posts.ReplyDelete
Totally off-topic, but do you have some new ink...? Is that too personal for you to talk about? Love it!
I have some Olga bike-type shorts. They're an elastic mesh.ReplyDelete
Keep your eyes open at Marshalls or TJMaxx, that's the kind of thing they'll often have for less than $24.
Well now that you said it seems incredibly obvious! haha! I will definitly have to try that out. I don't care for AA either though so maybe I can find a cheaper alternative.ReplyDelete
You look awesome as usual. I second your nude bike shorts x1000. They are AWESOME! I use a Jalie pattern though, the shorts from the skort pattern. As for glasses- The Slapdash Sewist has turned me onto zennioptical.com and I've not looked back. You can put all kinds of lenses into all kinds of things and the glasses are cheap enough that you can treat them like accessories instead of investments. I think I generally get out of there for about $20-$30 per pair for single vision. NAYY by the way. Shipping is slow though.ReplyDelete
Love this dress. Looks airy and comfortable and stylish all at once.ReplyDelete
Don't know about peep-toe flats, BUT..Tom's has some super cute peep-toe wedge's that are out, not too high. And with a reputation for comfort - plus a pair of shoes goes to a child in need with each pair sold....
- PatriceMay 27, 2011 at 7:51 PM
Bike shorts under a dress! Absolutely! I've been wearing them for a while now and I'm so glad I discovered them. So comfortable it's like wearing nothing, and holds in the jiggles!ReplyDelete
Oh I am defiantly all for making stuff myself to save money. In fact, I'm afraid I always think I can do everything myself. Clothes, bread, bicycle repair, free form polyurethane carving...ReplyDelete
Three post in one day too much you ask?? NO No and No! I wish i could get that motivated to dress stylishly at home!ReplyDelete
Hey Gertie--for shoes, if you haven't been to a Nordstrom Rack, give them a try. Their shoe selection is amazing. I like Puma Sport (though they don't look very vintage), but Anne Klein also makes "iFlex" shoes with a little more arch support. I've been getting cute pairs of both for under $50 at the Rack here in Wa.ReplyDelete
YAY I love Gertie Girl Reporter! Congratulations again on your new freelance life, I'm so happy for you!ReplyDelete
Congrats on the new lifestyle! I also am on the lookout for fabulous prescription sunglasses. The only time I wish I had contacts is when I see some cute cheap sunglasses in the drug store and wish I could wear them and still see!ReplyDelete
Can I ask a silly question? Do you wear underwear underneath the bike shorts, or are they your underwear?ReplyDelete
My summer wardrobe is so NOT ready!
Please!!! 10 or more posts would even be fine....I'm addicted to your lovely blog.ReplyDelete
On the glasses, check out zennioptical.com. I havent seen rhinestones, but they have cat eye glasses in a super cute selection. Browse through all the womens glasses. You can make them sunglasses and the prices are including the rx lenses! Seriously! Check them out, I buy all my family's rx eyewear from here!ReplyDelete
I think you need to make a pattern for longer knit undies (ie bike shorts)since the summer heat and inner theighs don't mix well.ReplyDelete
Oh my, I am loving this dress!ReplyDelete
- RachelMakesMay 30, 2011 at 3:00 AM
Gertie, I just made the same shorts discovery! I layered a pair under one of my shorter, tighter dresses (truth be told, I was out of underwear... sometimes laundry laziness results in wonderful fashion discoveries), and the shorts eliminated the dreaded visible panty line without fear of flashing. I will definitely be using that trick more this summer!ReplyDelete
I love your lemon dress! Might be one of my favorites you've made.
- RachelMakesMay 30, 2011 at 3:17 AM
Sorry to blather on... I'm now reading through the rest of the comments.ReplyDelete
I agree that a lot of the AA ads are problematic, and some stories I've heard about the owner seem kinda skeezy; however, click through their online women's section. I find that the models represent a much greater variety of both body shapes and races than A LOT of other stores/magazines.
They are still mostly thin and portrayed in a very sexual manner, but they're definitely encouraging an image of female beauty that goes beyond the typical white waif we see so often in fashion advertising... so, still room for improvement, but that's something at least.
LOVE this outfit, Gertie!!! :) Especially those sunnies--so cute!ReplyDelete
What a cute post! I am taking time off from my job and now I have time to read your blog :-) I am curious as to what your previous job was and what the freelance one consists of! Well, I'll have to read the previous posts... :-)ReplyDelete
One question about the "unmentionables" - the bike shorts - do you use those as underpants? Personally I find it uncomfortable if they have a seam right through their center.
Love your blog! Good luck in your new freelance way!
I'm another fan of Zenni Optical. My lenses alone would be 400$ if I bought them retail; I paid 13$ for my current pair.ReplyDelete
I'm wearing Privo Nitrons now because of my terrible, flat feet. They're stylish enough to be cute with dresses or shorts and I'm not in horrible pain after walking around all day.
Love the style. So sunny and summery.ReplyDelete


text:
You have had a stressful week balancing your work and personal life and now it's time for a much needed getaway. Book a stay at one of the Bentonville hotels with a hot tub suite and soak away the stresses of real life.
With so many things to do and sights to see in Bentonville you will likely be worn out and in need of some pampering. Give yourself a nice long rest in the hot tub and feel your muscles be rejuvenated. And since you wouldn't want to drop your cell phone in the water, leave your phone in your room and really take a moment to fully unplug. You can also make a stop at the on-property or nearby spa for some extra relaxation. If you're looking for a romantic excursion or just prefer your own space, book a hotel in Bentonville with an in-room hot tub.
Browse on Travelocity and the stress of booking a Bentonville jetted tub hotel will fade away just like your sore muscles will fade in the hot tub. Indulge in a trip to Bentonville knowing that you will get the best deals available with our Price Guarantee.
|457 hotels
Lowest Price
Highest Price
Popular hotels
|Comfort Inn Bentonville - Crystal Bridges, Best Western Plus Castlerock Inn & Suites, DoubleTree Suites by Hilton Bentonville, La Quinta Inn & Suites by Wyndham Bentonville, Comfort Suites Bentonville - Rogers, Courtyard By Marriott Bentonville, Days Inn & Suites by Wyndham Bentonville, Econo Lodge Inn & Suites Bentonville - Rodgers, Economy Lodge


text:
Some travelers are just looking for a place to crash at night. Not you, wise wanderer. Where you stay is an integral part of the destination itself. For you, we recommend a beautiful bed & breakfast. Before images of creaky Victorian houses and floral wallpaper creep into your mind, know that today's B&B scene is a completely different story.
Today's best bed n breakfast locations are sleek, modern, and geared toward sophisticated travelers seeking personalized service and beautiful accommodations. You can expect to set down your suitcase in a tastefully decorated room that can even include luxury additions like jetted tubs and rain showers. Downstairs, you'll often find books, games, and a movie library for those days when you want to stay in with your friends or someone special.
Speaking of your main squeeze, a romantic bed and breakfast is the perfect honeymoon or anniversary getaway. Discover a B&B tucked away into beautiful natural surroundings, or spend time on a working farm where you can enjoy the full beauty of Raleigh. Imagine yourself strolling through a lush garden and picnics with local gourmet fare. Oh, you two lovebirds!
Finally, we've got to talk about the other part of the B&B equation: breakfast! You deserve more than weak coffee and stale bagels. You deserve fresh buttermilk pancakes piled with ripe strawberries and dripping warm syrup. How about flakey croissants that almost melt in your mouth and fresh-squeezed orange juice? Bed and breakfasts definitely believe breakfast is the most important meal of the day, and they go all-out to make them worth waking up for.
On your next trip to Raleigh, check out all of Travelocity's bed and breakfast options. We can find you a cute boutique B&B for privacy and romance, or a B&B that will make your kids and pets feel like family.
We have up to a variety of B&B available in Raleigh, ranging from $71 to $248.
Book your stay in Raleigh B&B through Travelocity today and choose from 1,725 available options.
Travelers to Raleigh can find B&B priced as low as $71.
Lowest Price
Highest Price
Popular accommodation
|Guest House Raleigh, Morehead Manor B&B